-1

我刚开始OOPPHP我很容易理解::and的用法->

但是,例如,当我看到这个时,

$this->view->result

两者 的使用让->我感到困惑。

有谁可以帮我离开这里吗 ?

我正在追踪其他人的源代码,并且真的很想深入了解这一点。

4

6 回答 6

2

它是对象中的对象。$this->view 是一个对象,该类有一个名为 result 的属性。

于 2013-06-08T17:33:18.427 回答
2

当你使用

$this->view

您将获得视图对象,它是当前实例的属性。

正在做

 $this->view->result

是相同的

$viewObject = $this->view;
$viewObject->result;
于 2013-06-08T17:33:34.257 回答
1

让我们看一些代码:

$result = $this->view->result

// works exactly the same as

$view = $this->view;
$result = $view->result;

换句话说$this->view,是一个对象。因此,您仍然可以从中检索对象属性。

于 2013-06-08T17:36:33.490 回答
1

如您所知->,您可以访问属性或方法。显然,属性或方法也可以包含另一个对象。第二个->将访问内部对象的属性或方法。

举个例子:

class A {
    public $b = null;
    public function __construct() {
        $this->b = new B();
    }
    public function returnCinB() {
        return $this->b->c;
    }
}
class B {
    public $c = null;
    public function __construct() {
        $this->c = new C();
    }
}
class C { }

$a = new A();
var_dump($a->returnCinB()); // class C#3 (0) {
                            // }
于 2013-06-08T17:33:17.997 回答
0

想象一下以下课程:

class shop {
    ...
    public static function get_address() {
        return new address(123);
}

class address {
    ....
    public function get country() {
        return new country(456);
    }    
}

class country {
    ...
    get_continent() {
        return 'abc';
    }
}

你打电话时

shop::get_address()->get_country()->get_continent()

你会得到'abc'。你看,你可以使用 even stack 和 combine ->and::

于 2013-06-08T17:37:35.587 回答
0
$this->view->result

view 是 X 类中的一个变量,这个变量是另一个 Y 类的对象,其中 result 是这个 Y 类的一个变量

于 2013-06-08T17:37:43.407 回答