如何检查一个对象是否在PHP中实现 – > __ toString()?

前端之家收集整理的这篇文章主要介绍了如何检查一个对象是否在PHP中实现 – > __ toString()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有看到一个对象是否专门实现 – > __ toString?这似乎不起作用:
method_exists($object,'__toString');
有两种方法来检查它.

假设你有类:

class Foo
{
    public function __toString()
    {
        return 'foobar';
    }
}

class Bar
{
}

那么你可以做:

$rc = new ReflectionClass('Foo');       
var_dump($rc->hasMethod('__toString'));

$rc = new ReflectionClass('Bar');       
var_dump($rc->hasMethod('__toString'));

或使用:

$fo = new Foo;
var_dump( method_exists($fo,'__toString'));
$ba = new Bar;
var_dump( method_exists($ba,'__toString'));

不同的是,在第一种情况下,类实际上并不实例化.
你可以在这里演示:http://codepad.viper-7.com/B0EjOK

猜你在找的PHP相关文章