PHP 动态设置对象属性

标签 php object setter

我有一个函数,它应该读取数组并动态设置对象属性。

class A {
    public $a;
    public $b;

    function set($array){
        foreach ($array as $key => $value){
            if ( property_exists ( $this , $key ) ){
                $this->{$key} = $value;
            }
        }
    }
}

$a = new A();
$val = Array( "a" => "this should be set to property", "b" => "and this also");
$a->set($val);

嗯,显然是行不通的,有没有办法做到这一点?

编辑

这段代码好像没什么问题,应该关题了

最佳答案

您只需删除括号 {} 即可! -> $this->$key = $value;

关于PHP 动态设置对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21336747/

相关文章:

c++ - 在编译时创建 N 个对象的最佳方式

java - while 循环不向每个循环新创建的对象添加数据?在 java

php - 奇怪的是,ajax 响应包含空格

php - 字符串中出现奇怪的非英文字符,服务器出错

delphi - 在 Delphi 中使用旧式 `object` 而不是 `class` 有好处吗?

java - 使用 .properties 文件中的值设置此类的成员变量的最佳方法是什么?

swift - private setter 和 readonly 属性有什么区别?

c# - C# 中的内部属性 setter

php - 无法使用 array_merge 合并变量 : undefined index

php - 使用 phpMailer 和 PHP 从表单发送文件附件