我见过这样的事情:
echo ($hello->somethingA->somethingB);
这是什么意思?
我会尽力使我的问题更清楚:
当我们有$domain->something;
时(我们正在访问$ domain OBJECT的某些属性。精确吗?
当我们有$domain->something->run();
时,我们告诉我们$ DOMAIN OBJECT的某些属性来访问run()METHOD。精确?
那么我们在说什么:echo ($hello->somethingA->somethingB);
?访问一些属性属性?这有道理吗?
提前致谢, MEM
答案 0 :(得分:4)
是的,您正在访问酒店的财产。显然,$ hello是一个名为$ somethingA的属性的对象。该属性是一个具有名为$ somethingB的属性的对象。 $ somethingB显然是一个可以回显的字符串或其他类型。
答案 1 :(得分:2)
给Scott Saunders +1,这是一个例子来说明它:
class Hello
{
/**
* @var SomethingA
*/
public $somethingA;
}
class SomethingA
{
/**
* @var, don't know what type
*/
public $somethingB;
}
$hello = new Hello();
$hello->somethingA = new SomethingA();
$hello->somethingA->somethingB = new stdClass();
var_dump($hello);
答案 2 :(得分:0)
另一个方面还没有在其他答案中探讨过。您正在访问属性的其他答案,而不是方法。但PHP5的对象可以用于链式方法,也许这就是你所指的。
而不是:
$obj = new Object();
$obj->setId('1');
$obj->setName('name');
$obj->setAge('24');
你可以这样做:
$obj = new Object();
$obj->setId('1')->setName('name')->setAge('24');
在每种方法中,返回$this
并且你是金色的。有关更多详细信息和灵感,请参阅此文章:
http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html