是否有更好的选择使用两个$ this->在同一句话?

时间:2011-10-14 14:15:57

标签: php class object this

如果你这样做:

    $this->$this->name->something();

你肯定会收到错误。

我一直在做类似的事情:

    $name =& $this->name;
    $this->$name->something();

但有没有更好的方法呢?如果PHP有某种方式做这样的事情会更容易:

    $this->'$this->name'->something();

谢谢!

2 个答案:

答案 0 :(得分:3)

  

但有没有更好的方法呢?如果PHP有一些方法可以更容易,例如:$ this->'$ this-> name' - > something();

有;

$this->{$this->name}->something( );

但是......你在做什么?你真的需要这个吗?从我站立的地方来看,这似乎是一个奇怪的结构。

答案 1 :(得分:2)

如果$this->name是对象,则$this->name->something()应该可以正常工作。

编辑:另请注意,如果您的方法返回对象,您可以将方法调用链接起来:

$this->name->something()->somethingElse()->anotherThing();