__toString() 関数
プログラムをデバッグするとき、正しいデータが取得されたかどうかを知る必要があります。たとえば、オブジェクトを印刷するときに、そのオブジェクトにどのような属性があり、その値が何であるかを確認できます。クラスで toString メソッドが定義されている場合、テスト中にオブジェクト本体をエコー印刷すると、オブジェクトは定義された toString メソッドを自動的に呼び出します。所属するクラスごとに、このオブジェクトに含まれるデータをフォーマットして出力します。
__toString() の例を見てみましょう
<?phpclass Person{ private $name = ""; function __construct($name = ""){ $this->name = $name; } function say(){ echo "Hello,".$this->name."!<br/>"; } function __tostring(){//在类中定义一个__toString方法 return "Hello,".$this->name."!<br/>"; }}$Bindao= new Person('Bindao');echo $Bindao;//直接输出对象引用则自动调用了对象中的__toString()方法$WBlog->say();//试比较一下和上面的自动调用有什么不同?>
プログラム出力:
Hello,Bindao!
Hello,Bindao!
"__tostring()" メソッドが定義されていない場合はどうなりますか?たとえば、上記のコードに基づいて、「__tostring()」メソッドをブロックし、プログラム出力を確認します。クラスに「__tostring()」メソッドが定義されていない場合、オブジェクトへの参照を直接出力すると構文エラーが発生することがわかります。また、__tostring()メソッド本体に戻り値が必要です。 。