我已经习惯使用了php,但是最近我一直在寻找一些MVC框架来尝试理解它们是如何工作的,而且我遇到了一个语法和数据结构,我没有'之前遇到过:
function view($id)
{
$this->Note->id = $id;
}
此代码的 - > id部分是什么?这是一个基于它的父方法的子方法吗?如果是这样,我如何编写代码来创建这样的结构? (即从头开始创建结构,不使用像cakephp上面的示例那样的现有框架。)
答案 0 :(得分:2)
Note
是$this
的属性,它的(当前)值是具有名为id
的属性的对象,其被赋值为$id
。
如果id
是Note
对象的方法,则该行将显示为$this->Note->id($id);
。
答案 1 :(得分:2)
以下代码演示了如何达到您描述的结构。
<?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\n",
$this->Note->id);
}
}
$mc = new MyClass();
$mc->test();
?>
答案 2 :(得分:1)
考虑构造的另一种方法是考虑
$this->Note->id = $id;
类似于
$this["Note"]["id"] = $id;
如果两个对象($ this和subobject Note)都基于ArrayAccess,那么这实际上是等价的。