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

__toStringメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

__toStringメソッドは、OutOfRangeExceptionオブジェクトが持つ例外情報を、人間が読みやすい形式の文字列として生成し、返す処理を実行するメソッドです。このメソッドはPHPのマジックメソッドの一つであり、オブジェクトが文字列として扱われる文脈で自動的に呼び出されます。例えば、catchブロックで捕捉したOutOfRangeExceptionオブジェクトをechoで画面に出力しようとした場合や、文字列と連結された場合、あるいはエラーログに記録される際に内部的に使用されます。返される文字列には、デバッグに役立つ詳細な情報が含まれています。具体的には、例外クラス名である「OutOfRangeException」、コンストラクタで設定されたエラーメッセージ、例外が発生したソースコードのファイル名と行番号、そして例外発生地点に至るまでの関数の呼び出し履歴を示すスタックトレースなどが整形されて格納されます。この振る舞いは基底クラスであるExceptionクラスから継承されており、開発者はこのメソッドが返す文字列を確認することで、プログラムのどこで、なぜ範囲外のアクセスが発生したのかを迅速に特定し、問題解決に繋げることができます。

構文(syntax)

1<?php
2
3try {
4    $array = ['apple', 'banana'];
5    if (!isset($array[5])) {
6        throw new OutOfRangeException("Index does not exist.", 100);
7    }
8} catch (OutOfRangeException $e) {
9    // 例外オブジェクトを文字列として扱うと、__toString() が暗黙的に呼び出される
10    echo $e;
11}
12
13?>

引数(parameters)

引数なし

引数はありません

戻り値(return)

string

このメソッドは、例外が発生した際に、その例外に関する情報を文字列として返します。