我们在哪里和为什么在PHP中使用__toString()?

前端之家收集整理的这篇文章主要介绍了我们在哪里和为什么在PHP中使用__toString()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我明白它是如何工作的,但为什么我们会用这个呢?
<?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();
?>

我们不能使用任何其他公共方法输出任何文本?
为什么我们需要像这样的魔法?

你不需要它.但是定义它可以将对象隐式转换为字符串,这是方便的.

拥有直接回显的成员函数被认为是不好的形式,因为它给类本身的输出提供过多的控制.你想从成员函数返回字符串,让调用者决定如何处理它们:是将它们存储在一个变量中,还是将它们回显出来,或者回调它们.使用魔术功能意味着您不需要显式的函数调用来执行此操作.

猜你在找的PHP相关文章