[英]Why does Yii allow me to access the private $this->_property, with $this->property?
我不确定这里发生了什么,也许有人知道:
在我的布局上,我有:
<div id="main-content" class="<?= $this->getMainClass(); ?>">
在components> controller类上,我有这个:
private $_mainCssClass;
public function setMainCssClass($className) {
if (is_string($className)) {
$this->_mainCssClass = $className;
} else {
quickDump($className);
}
}
public function getMainCssClass() {
return $this->_mainClass;
}
我没有得到的是,尽管事实上我们正在使用访问器,并且mainCssClass属性具有下划线并且被声明为私有,但是我可以通过它访问它:
$this->MainCssClass;
与以下内容相同: $this->getMainCssClass()
这是为什么 ?
您不访问私有的_mainCssClass
而是访问getMainCssClass()
这是一个公共方法。 因此,您可以从外部调用此方法,还可以访问mainCssClass
(这只是getMainCssClass()
的简写)。
并且可以从getMainCssClass()
访问同一类内的任何私有变量。 没有限制,您不能返回私有变量的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.