关于cakephp:Php子方法

Php sub-methods

我已经用了足够多的php来适应它,但是最近我已经浏览了一些MVC框架来尝试和理解它们是如何工作的,并且我遇到了一个我以前从未遇到过的语法和数据结构:

1
2
3
4
function view($id)  
   {  
       $this->Note->id = $id;  
   }

这个代码的->id部分是什么?这是基于其父方法的子方法吗?如果是这样,我该如何编写代码来创建这样的结构呢?(即,从头开始创建结构,而不是使用cakephp中的上述示例那样的现有框架)。


下面的代码演示了如何到达所描述的结构。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php

class Note
{
    public $id = 42;
}

class MyClass
{
    public function __construct() {
        // instance of 'Note' as a property of 'MyClass'
        $this->Note = new Note();
    }

    public function test() {
        printf("The \$id property in our instance of 'Note' is: %d
"
,
            $this->Note->id);
    }
}

$mc = new MyClass();
$mc->test();
?>


Note$this的一个属性,它的(当前)值是一个名为id的属性的对象,它被赋予$id的值。如果idNote对象的方法,则该行将读取$this->Note->id($id);


考虑构造的另一种方法是

1
 $this->Note->id = $id;

类似

1
 $this["Note"]["id"] = $id;

如果这两个对象($this和subobject note)都是基于arrayaccess的,这实际上是等效的。