php->;级联中使用的算子

php->;级联中使用的算子,php,Php,我看到了这个代码: public function query( $query ) { $full_query = $this->link->query( $query ); if( $this->link->error ) { $this->log_db_errors( $this->link->error, $query ); return fa

我看到了这个代码:

 public function query( $query )
    {
        $full_query = $this->link->query( $query );
        if( $this->link->error )
        {
            $this->log_db_errors( $this->link->error, $query );
            return false; 
        }
        else
        {
            return true;
        }
    }
包含在类定义中。
请解释这种代码的含义:
a->b->c
。我知道在访问实例化类的方法或属性时会使用
a->b
。但无法理解如何解释(“读取、理解、翻译”)
a->b->c

这意味着对象a的属性b也是一个对象。所以你得到了对象a的属性b的属性c

class a {
    public $b;

    function __construct() {
        $this->b = new b;
    }
}

class b {
    public $c;

    function __construct() {
        $this->c = 'Hello';
    }
}

$a = new a;

echo $a->b->c; // outputs Hello.

对象a有一个属性b,它本身就是一个以c作为方法或属性的对象。根据发布的代码,$this,您正在查看其源的对象有一个属性-链接-这是一个对象。由于链接也是一个对象,它可以(而且确实)具有属性,其中两个是查询和错误。

它的意思完全相同,就像
$foo[33]
在概念上与
$foo[33][44]
相同。非常感谢;你和“人头攒动”。还有一个问题和这个主题有关。这条链子能有多长?所以:财产的财产的财产的财产的……的……的……对象。你通常不会看到超过4个,但没有限制(至少我不知道)。如果你需要4个以上,你就做错了。为了回答你的另一个问题,如果一个属性是一个对象,那么它可以有一个属性。为了更清楚地回答我的最后一个问题:我们可以将一个类的属性声明为另一个类的对象吗?。听起来像是疯狂的世界;我们不知道谁是第一个:鸡蛋还是鸡……是的,这正是我上面的例子所证明的。在类
a
中,您将您的属性
b
声明为类
b
的对象。请原谅,我坚持,从文档中可以清楚地看到,对象可以具有属性。我在文档中没有看到/发现的是,属性可以是对象。在大多数书中,我看到属性是一个变量,成员/方法是一个函数;你和“人头攒动”。还有两个问题和这个主题有关。这条链子能有多长?所以:财产的财产的财产的财产的对象。而且,一个财产可以拥有一个财产吗?我认为只有类/对象才有属性和方法/成员。我对这种混合物感到困惑。也许可以给我推荐一本阐明这个主题的好教程。