gpt4 book ai didi

php - 为对象动态添加私有(private)属性

转载 作者:可可西里 更新时间:2023-10-31 22:13:22 25 4
gpt4 key购买 nike

我有一个类:

class Foo {
// Accept an assoc array and appends its indexes to the object as property
public function extend($values){
foreach($values as $var=>$value){
if(!isset($this->$var))
$this->$var = $value;
}
}
}

$Foo = new Foo;
$Foo->extend(array('name' => 'Bee'));

现在 $Foo 对象有一个公共(public)的 name 属性,值为 Bee

如何更改extend 函数使变量私有(private)化?

编辑使用私有(private)数组是另一种方式,绝对不是我的答案。

最佳答案

你可以这样做。

__get 函数将检查给定的键是否设置在私有(private)属性(property)。

class Foo {

private $data = array();

// Accept an array and appends its indexes to the object as property
public function extend($values){
foreach($values as $i=>$v){
if(!isset($this->$i))
$this->data[$i] = $v;
}
}

public function __get($key) {
if (isset($this->data[$key])) {
return $this->data[$key];
}
}

}

关于php - 为对象动态添加私有(private)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415023/

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