我剛開始熟悉PHP的面向對象功能,我想問你一些關於$this
變量的內容。首先,如果我使用的$this
關鍵字在一個類中沒有定義的屬性變量foo
,這是否意味着,使用下面的代碼:
$this->foo = 5;
echo $this->foo;
將在對象上創建foo
財產運行時,就像在JavaScript中一樣?這個屬性的可見性是什麼?
我剛開始熟悉PHP的面向對象功能,我想問你一些關於$this
變量的內容。首先,如果我使用的$this
關鍵字在一個類中沒有定義的屬性變量foo
,這是否意味着,使用下面的代碼:
$this->foo = 5;
echo $this->foo;
將在對象上創建foo
財產運行時,就像在JavaScript中一樣?這個屬性的可見性是什麼?
是的,這將創建foo
屬性,其可見性將爲public
(這是默認值)。
你可以很容易地測試:
<?php
class Foo {
public function setFoo($foo) {
$this->foo = $foo;
}
}
$f = new Foo();
$f->setFoo(5);
echo $f->foo;
將打印5沒有任何錯誤。
是的,它當然會。
屬性可以添加到任何對象,與其類無關。也可以寫
$obj = new stdClass();
$obj->foo = 'bar';
我會推薦看看這個[page](http://stackoverflow.com/questions/151969/php-self-vs-this)。 – Aif 2009-12-06 13:37:55