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(); ?> |
考虑构造的另一种方法是
1 | $this->Note->id = $id; |
类似
1 | $this["Note"]["id"] = $id; |
如果这两个对象($this和subobject note)都是基于arrayaccess的,这实际上是等效的。