我已經開始真正深入到其他民族的代碼,我希望這被認爲是一個簡單的問題,但東西扔我,我希望你能解釋一下:未定義時在類對象中調用的變量?
當閱讀這個簡單的啓動腳本的模板引擎我注意到沒有爲$ variable->對象設置定義或變量。
class Template {
protected $file;
protected $values = array();
public function __construct($file) {
$this->file = $file;
}
}
如果在基本上面代碼中發現,這 - $>文件= $文件,「文件」對象沒有定義就引用。它是__construct函數的原因嗎?還是我錯過了別的?如果是的話,所有構造變量在函數內設置爲「define()」?
編輯:
的問題是,不__construct充當定義(),這樣的「文件」可以在任何地方使用的代碼,就好像它是一個變量$文件?或者是「受保護的」本質上定義變量$文件,允許我使用變量$文件。但如果是這樣的話,
怎麼來
function __construct($file)
看起來並不像:
function __construct(file) if that is the case?
猜猜我很困惑,如何「文件」已經調用了哪些部分代碼定義了「文件」?
[在類定義上設置構造函數VS上的變量]的可能重複(https://stackoverflow.com/questions/1484265/setting-variables-on-constructor-vs-on-the-class-definition) –
但通常它可能但不乾淨 –
我不知道什麼是「未定義」在這裏。 'protected $ file'定義'$ this-> file'引用的屬性。 '$ file'作爲參數進入函數。 – deceze