【PHP8.x】__toStringメソッドの使い方

作成日: 更新日:

『__toStringメソッドは、TypeErrorオブジェクトが持つ情報を整形し、人間が可読な文字列表現を生成して返す処理を実行するメソッドです。このメソッドは、オブジェクトを文字列として扱う必要がある状況でPHPエンジンによって自動的に呼び出されます。例えば、echo文でTypeErrorオブジェクトを直接出力しようとしたり、ログファイルにエラー情報を文字列として書き込んだりする場合がこれに該当します。返される文字列には、エラーの内容を示すメッセージ、エラーが発生したソースコードのファイル名と行番号、そしてエラー発生に至るまでの関数の呼び出し履歴(スタックトレース)が標準的なフォーマットで含まれています。このため、開発者はtry-catchブロックで捕捉したTypeErrorオブジェクトをそのまま文字列として扱うだけで、デバッグに不可欠な詳細情報を得ることができます。このメソッドはPHPのマジックメソッドの一つであり、エラー処理とデバッグの効率化において重要な役割を担っています。

基本的な使い方

構文(syntax)

1<?php
2
3function add(int $a, int $b): int
4{
5    return $a + $b;
6}
7
8try {
9    // int型を期待する引数に文字列を渡し、TypeErrorを発生させる
10    add('text', 5);
11} catch (TypeError $e) {
12    // TypeErrorオブジェクトを文字列として出力する際に
13    // __toString() メソッドが暗黙的に呼び出される
14    echo $e;
15}
16
17?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このメソッドは、TypeError オブジェクトを文字列として表現したものを返します。

【PHP8.x】__toStringメソッドの使い方 | いっしー@Webエンジニア