带有$ a->名称和$ a-> name-> function()的PHP对象

时间:2013-07-14 20:10:44

标签: php

如何创建具有变量的对象/类。然后变量也需要具有可调用函数。

$a->name //return foo
$a->name->getAlias() //return foobar

以上是一个示例,而不是所需的功能。

谢谢。

1 个答案:

答案 0 :(得分:6)

如果您的对象被称为字符串,_toString会自动更改您的对象。 name需要是对象的实例才能以不同的方式使用它:

class A
{
    function __construct() 
    {
        $this->name = new B();
    }
}

class B
{
    function __toString()
    {
        return 'Jamie';
    }

    function getAlias()
    {
        return 'JJAMMIIEE';
    }
}

$a = new A();
print $a->name; //returns Jamie
var_dump($a->name); //returns Object B, __toString function will not be called
print $a->name->getAlias(); //returns JJAMMIIEE

Documentation here