Yii屬性


在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 屬性。
第3步 - 在Web瀏覽器中輸入並存取:http://localhost:8080/index.php?r=site/properties ,會看到如下的輸出:
Yii屬性