Yii - 属性


PHP 中的类成员变量也称为属性。它们代表类实例的状态。Yii 引入了一个名为yii\base\Object的类。它支持通过gettersetter类方法定义属性。

getter 方法以单词get开头。setter 方法以set 开头。您可以使用由 getter 和 setter 定义的属性,例如类成员变量。

当读取属性时,将调用 getter 方法。当一个属性被赋值时,setter 方法将会被调用。仅当未定义 setter 时,由 getter 定义的属性才是只读的。

步骤 1 -在组件文件夹中创建一个名为Taxi.php的文件。

<?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 类派生的 Taxi 类。我们设置一个 getter – getPhone()和一个 setter – setPhone()

步骤 2 -现在,向SiteController添加一个actionProperties方法。

public function actionProperties() {
   $object = new Taxi();
   // equivalent to $phone = $object->getPhone();
   $phone = $object->phone;
   var_dump($phone);
   // equivalent to $object->setLabel('abc');
   $object->phone = '79005448877';
   var_dump($object);
}

在上面的函数中,我们创建了一个Taxi对象,尝试通过getter访问phone属性,并通过setter设置phone属性。

步骤 3 - 在 Web 浏览器中,输入http://localhost:8080/index.php?r=site/properties,在地址栏中,您应该看到以下输出。

属性输出