我明白它是如何工作的,但为什么我们会用这个呢?
<?PHP class cat { public function __toString() { return "This is a cat\n"; } } $toby = new cat; print $toby; ?>
这不是这样吗?
<?PHP class cat { public function random_method() { echo "This is a cat\n"; } } $toby = new cat; $toby->random_method(); ?>
我们不能使用任何其他公共方法输出任何文本?
为什么我们需要像这样的魔法?
你不需要它.但是定义它可以将对象隐式转换为字符串,这是方便的.
拥有直接回显的成员函数被认为是不好的形式,因为它给类本身的输出提供过多的控制.你想从成员函数返回字符串,让调用者决定如何处理它们:是将它们存储在一个变量中,还是将它们回显出来,或者回调它们.使用魔术功能意味着您不需要显式的函数调用来执行此操作.