Yii框架中,属性(Property)用于定义实例变量和 getter/setter 方法。它有以下特点:1. 定义属性时,需要指定其类型。Yii支持的类型有:
– string/integer/boolean: 标量类型
– float/double: 浮点类型
– array: 数组
– object: 对象
– className: 指定类名
– interfaceName: 指定接口名
2. 属性可以指定默认值,在实例化类时如果没有传入该属性值,将使用默认值。
3. 根据属性类型,Yii会自动生成getter和setter方法。如属性类型为string,会生成getString()和setString()方法。
4. 可以手动指定getter和setter方法名称。如:
public $name; public function getName() //自定义getter名称 { return $this->name; } public function setName($value) //自定义setter名称 { $this->name = $value; }
5. 可以指定属性为只读(readonly)或只写(writeonly),此时将只生成getter 或 setter方法。
6. 获取属性信息可以使用 Property::getInfo() 方法。
7. 属性值可以通过 魔术方法__get() 和 __set() 进行获取和设置。一个简单的示例:
class User extends \yii\base\Model { public $name; //string类型,生成getString()和setName()方法 public $age = 25; //integer类型,指定默认值为25 public float $height; //float类型 public $addresses = []; //array类型 public \yii\web\IdentityInterface $identity; //interfaceName类型 public function getInfo() //自定义getter名称 { return $this->name . ', ' . $this->age; } }
通过 $user = new User();
实例化后,可以如此访问属性:
– $user->name
– $user->age
– $user->height
– $user->addresses
– $user->identity
– $user->getInfo()
– $user->setName(‘John’)
– etc.Yii框架中的属性为我们简化了属性的get/set方法定义,让代码更清晰简洁。
联系信息:邮箱aoxolcom@163.com或见网站底部。
请登录后发表评论
注册
社交帐号登录