2011-05-21 35 views
0

我正在將腳趾浸入到PHP的面向對象方面,我一直在想公共封裝。我理解私有和受保護的封裝的目的,但是當涉及到公共時,爲什麼說它呢?爲OOP描述公共封裝的目的是什麼?

因此,例如,我有 public $name;

但如果我可以只設置$this->name = 'whatever',然後whycome "public $varname"存在?

+0

順便說一句,這不是真正*封裝*。 – deceze 2011-05-22 00:10:21

+0

減速:解釋? – 2011-05-22 01:20:00

+1

封裝意味着你封裝了一個類的內部工作和狀態,並且只爲該類的用戶提供了一個不變的接口。 *「公開封裝*」是一個矛盾的東西,至少在這裏你用它的方式。 – deceze 2011-05-22 01:27:50

回答

5

因爲明確指定類的屬性總是更好。是的,您可以根據需要在方法中動態設置它們,但是當您嘗試記住它是否應該是$varname,$var_name,$varName或者您是否已經「聲明」屬性時所有。

它還確保在您嘗試使用它時存在該屬性,從而可以節省您對isset的調用,並使您的代碼更加簡潔和健壯。