面向對象編程的基本原則:
1、設置類的屬性
class ShopProduct {
public $title = 'default product';
public $producterMainName = 'main name';
public $producterFirstName = 'first name';
public $price = 0;
}
$product1 = new ShopProduct();
//設置屬性
$product1->title = "My Antonia";
$product1->producterFirstName = "Cather";
$product1->producterMainName = "Willa";
$product1->price = 5.99;
//訪問
echo 'author: '.$product1->producterFirstName.' '.$product1->producterMainName;
用以上方法設置屬性值會有很多問題:
第一:PHP允許動態設置屬性,如果拼錯或忘記屬性名時並不會得到警告。例如錯誤地把
$product1->producterMainName = "Willa";
寫作
$product1->producterSecondName = "Willa";
,當我們輸出作者名字的時候,會有意想不到的結果。
第二:類太過松散,我們沒有強制設置標題、價格或者產品名稱,客戶端代碼可以確定的是這些屬性存在,但是面對的可能是默認值也可能不是,理想情況下,我們希望實例化ShopProduct對象時設置有意義的屬性值。
第三:不得不重復做一些經常做的事,比如多次需要完整輸出作者的名字,就要重復使用
echo 'author: '.$product1->producterFirstName.' '.$product1->producterMainName;