getter和setter方法以get、set开头,后面跟的就是属性的名字,如getLabelphp
定义好方法后,就能够像普通属性同样使用。可是有本质区别:当这种属性被读取是,对应的getter方法被调用,当属性被赋值时,对应的setter方法被调用。this
使用的时候只需写属性名(小写)如getLabel 只须要写后面的小写 label。spa
语法:注意若是要赋值的话首先要给类定义一个私有$_label属性code
private $_label//定义一个属性 public function getLabel() { return $this->label; } public function setLabel() { $this->_label=trim($value); }
使用场景,如截取字符串输出ip
在视图层里:utf-8
'columns' => [ //'content:ntext', //经过Comment的getter设置,显示前20个字符 [ 'attribute'=>'content', 'value'=>'begining', ], ]
在模型类Comment里:字符串
/** * 截取评论内容前20个字符 */ public function getBegining() { $str=strip_tags($this->content);//strip_tags方法从字符串中去除 HTML 和 PHP 标记 $strLength=mb_strlen($this->content);//mb_strlen获取字符串的长度 return mb_substr($str,0,20,'utf-8').(($strLength>=20?'...':''));//mb_substr方法获取部分字符串 }