gpt4 book ai didi

php - 在方法中声明 protected 变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:34 25 4
gpt4 key购买 nike

我仔细看了看,似乎找不到这个问题的答案。

基本上,我使用 _call 方法动态生成 get 和 set 方法,但是在声明变量时,PHP 的默认值是公开的。无论如何要将类中的变量声明为 protected ?

function __call($method, $arguments) {
$prefix = strtolower(substr($method, 0, 3));
$property = strtolower(substr($method, 3));

if (empty($prefix) || empty($property)) {
return;
}

if ($prefix == "get" && isset($this->$property)) {
return $this->$property;
}

if ($prefix == "set") {

$this->$property = $arguments[0];
}
}

最佳答案

一个选择是拥有一个 protected 数组,并通过您的魔法 setter 在该数组中设置一个元素。

class MyClass {
protected $_myProperties = array();

public function __get($name) {
if (isset($this->_myProperties[$name])) {
return $this->_myProperties[$name];
} else {
return null;
}
}

public function __set($name, $value) {
$this->_myProperties[$name] = $value;
}

public function __isset($name) {
return isset($this->_myProperties[$name]);
}
}

关于php - 在方法中声明 protected 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3379024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com