有没有看到一个对象是否专门实现 – > __ toString?这似乎不起作用:
method_exists($object,'__toString');
有两种方法来检查它.
@H_404_7@假设你有类:
你可以在这里演示:http://codepad.viper-7.com/B0EjOK
原文链接:https://www.f2er.com/php/131533.htmlclass Foo { public function __toString() { return 'foobar'; } } class Bar { }@H_404_7@那么你可以做:
$rc = new ReflectionClass('Foo'); var_dump($rc->hasMethod('__toString')); $rc = new ReflectionClass('Bar'); var_dump($rc->hasMethod('__toString'));@H_404_7@或使用:
$fo = new Foo; var_dump( method_exists($fo,'__toString')); $ba = new Bar; var_dump( method_exists($ba,'__toString'));@H_404_7@不同的是,在第一种情况下,类实际上并不实例化.
你可以在这里演示:http://codepad.viper-7.com/B0EjOK