0
我正在將腳趾浸入到PHP的面向對象方面,我一直在想公共封裝。我理解私有和受保護的封裝的目的,但是當涉及到公共時,爲什麼說它呢?爲OOP描述公共封裝的目的是什麼?
因此,例如,我有 public $name;
但如果我可以只設置$this->name = 'whatever'
,然後whycome "public $varname"
存在?
我正在將腳趾浸入到PHP的面向對象方面,我一直在想公共封裝。我理解私有和受保護的封裝的目的,但是當涉及到公共時,爲什麼說它呢?爲OOP描述公共封裝的目的是什麼?
因此,例如,我有 public $name;
但如果我可以只設置$this->name = 'whatever'
,然後whycome "public $varname"
存在?
因爲明確指定類的屬性總是更好。是的,您可以根據需要在方法中動態設置它們,但是當您嘗試記住它是否應該是$varname
,$var_name
,$varName
或者您是否已經「聲明」屬性時所有。
它還確保在您嘗試使用它時存在該屬性,從而可以節省您對isset
的調用,並使您的代碼更加簡潔和健壯。
順便說一句,這不是真正*封裝*。 – deceze 2011-05-22 00:10:21
減速:解釋? – 2011-05-22 01:20:00
封裝意味着你封裝了一個類的內部工作和狀態,並且只爲該類的用戶提供了一個不變的接口。 *「公開封裝*」是一個矛盾的東西,至少在這裏你用它的方式。 – deceze 2011-05-22 01:27:50