2011-02-11 38 views
1

我已經使用php足以讓它很舒服,但最近我一直在通過一些MVC框架來試圖瞭解它們是如何工作的,並且我遇到了一個語法和數據結構我之前沒有遇到過這種情況:Php子方法

function view($id) 
    { 
     $this->Note->id = $id; 
    } 

什麼是此代碼的 - >部分?這是一個基於父方法的子方法嗎?如果是這樣,我該如何編寫代碼來創建這樣的結構? (即從零開始創建結構,而不是像cakephp中的上述示例那樣使用現有框架)。

+0

[絕對基本的PHP問題關於「 - >」語法]的可能重複(http://stackoverflow.com/questions/4502587/absolutely-basic-php-question-about-the-syntax) – Gordon 2011-02-11 17:01:46

+0

*(相關)* [參考:這個符號在PHP中是什麼意思](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon 2011-02-11 17:02:42

回答

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

Note$this一個屬性和它的(當前)值是與命名其被分配的$idid屬性的對象。
如果idNote對象的方法,則該行將讀取$this->Note->id($id);

1

另一種方式來思考結構正在考慮

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

類似

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

如果兩個對象($本和子對象注)是在此基礎上實際上是等同ArrayAccess接口。