在PHP中一個類的成員變數也被稱為屬性。它們代表了類實例的狀態。Yii中引入了一個 yii\base\Object 類。它支持通過類的 getter 或 setter 方法定義屬性。
getter方法以get開始。 setter方法以set開始。可以使用類的 getter 和 setter 方法定義成員屬性變數。
當讀取一個屬性,getter方法將會被調用。 當要分配屬性,setter方法將被調用。如果沒有定義 setter 而只通過 getter 定義的屬性為只讀。
第1步 - 創建一個 Taxi.php 檔在組件(components)檔夾內。
<?php namespace app\components; use yii\base\Object; class Taxi extends Object { private $_phone; public function getPhone() { return $this->_phone; } public function setPhone($value) { $this->_phone = trim($value); } } ?>
在上面的代碼中,我們從Object類的派生類定義 derived 。然後建立一個 getter - getPhone()方法和一個 setter - setPhone()方法 。
第2步 - 現在,添加 actionProperties() 方法到 SiteController。
public function actionProperties() { $object = new Taxi(); // equivalent to $phone = $object->getPhone(); $phone = $object->phone; var_dump($phone); // equivalent to $object->setLabel('abc'); $object->phone = '13800138000'; var_dump($object); }
在上述功能我們創建了一個 Taxi 對象,試圖通過 getter 方法訪問 phone 屬性,和 setter 方法設置 phone 屬性。