__toString()、クラスが文字列として扱われる場合の応答メソッド
関数:
__toString() メソッドが使用されますクラスの場合、文字列として扱われる場合の応答方法。たとえば、`echo $obj;` が表示する内容です。
注:
このメソッドは文字列を返さなければなりません。そうでない場合は、`E_RECOVERABLE_ERROR` レベルの致命的なエラーが発行されます。
警告:
__toString() メソッドでは例外をスローできません。致命的なエラーが発生します。
コード:
<?php class Person { public $sex; public $name; public $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } public function __toString() { return 'go go go'; } } $person = new Person('小明'); // 初始赋值 echo $person;
結果:
go go go
では、クラスに __toString() マジック メソッドが存在しない場合はどうなるのでしょうか?テストしてみましょう:
コード:
<?php class Person { public $sex; public $name; public $age; public function __construct($name="", $age=25, $sex='男') { $this->name = $name; $this->age = $age; $this->sex = $sex; } } $person = new Person('小明'); // 初始赋值 echo $person;
結果:
Catchable fatal error: Object of class Person could not be converted to string in D:\phpStudy\WWW\test\index.php on line 18 很明显,页面报了一个致命错误,这是语法所不允许的。
以上がPHPの__toString()メソッドの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。