在使用 PHP 的 DOM 类(DOMNode、DOMEElement 等)时,我注意到它们拥有真正的只读属性。例如,我可以读取 DOMNode 的 $nodeName 属性,但无法写入它(如果我这样做,PHP 会引发致命错误)。
如何在 PHP 中创建自己的只读属性?
你可以这样做:
class Example {
private $__readOnly = 'hello world';
function __get($name) {
if($name === 'readOnly')
return $this->__readOnly;
user_error("Invalid property: " . __CLASS__ . "->$name");
}
function __set($name, $value) {
user_error("Can't set property: " . __CLASS__ . "->$name");
}
}
仅当您真正需要时才使用它 - 它比正常的属性访问慢。对于 PHP,最好采用仅使用 setter 方法从外部更改属性的策略。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)