getter和setter方法以get、set开头,后面跟的就是属性的名字,如getLabel
定义好方法后,就可以像普通属性一样使用。但是有本质区别:当这种属性被读取是,对应的getter方法被调用,当属性被赋值时,对应的setter方法被调用。
使用的时候只需写属性名(小写)如getLabel 只需要写后面的小写 label。
语法:注意如果要赋值的话首先要给类定义一个私有$_label属性
private $_label//定义一个属性
public function getLabel()
{
return $this->label;
}
public function setLabel()
{
$this->_label=trim($value);
}
使用场景,如截取字符串输出
在视图层里:
'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方法获取部分字符串
}