深入理解PHP魔术方法__toString()及其在调试中的应用
__ToString()是快速获取对象的字符串信息的便捷方法。魔术方法似乎具有“自动”功能,例如自动获取,自动打印等。__ToString()也不例外。当直接输出对象引用时。自动称为方法。

__ToString()的角色
当我们调试程序时,我们需要知道是否获得了正确的数据。例如,打印对象时,请查看对象具有什么属性及其值是什么。如果类定义了ToString方法,则可以在测试过程中打印对象主体,并且该对象将自动调用由其所属类定义的ToString方法。 ,格式并输出此对象中包含的数据。
class Person{
private $name = "";
function __construct($name = ""){
$this->name = $name;
}
function say(){
echo "Hello,".$this->name."!
";
}
function __tostring(){//在类中定义一个__toString方法
return "Hello,".$this->name."!
";
}
}
$WBlog = new Person('WBlog');
echo $WBlog;//直接输出对象引用则自动调用了对象中的__toString()方法
$WBlog->say();//试比较一下和上面的自动调用有什么不同
程序输出:
你好,wblog!
你好,wblog!
如果未定义“ __tostring()”方法,会发生什么?例如,基于上述代码,阻止“ __tostring()”方法,并查看程序输出结果:
可捕获的致命错误:不能将班级的对象转换为字符串
从中,我们可以看到,如果“ ___tostring()”方法未定义,则直接输出对图像的引用时,将发生错误。此外,__tostring()方法的正文需要有一个返回值。
原始博客地址: