gpt4 book ai didi

php - 通过对象属性运行循环并赋值

转载 作者:行者123 更新时间:2023-12-02 10:59:14 24 4
gpt4 key购买 nike

我有这门课,

class example {
public $a;
public $b;
public $c;
....
}

我有一个数组,其中包含与示例类中相同数量的公共(public)变量(在本例中为 3):

$arr[0] = 'Red';
$arr[1] = 'Green';
$arr[2] = 'Blue';

我想将该数组的每个值一一分配给该类的公共(public)属性(例如$a获取Red$b) code> 得到 绿色 等等)。如何使用循环将数组中的这些值分配给类的公共(public)属性?

我正在写如下内容,但它不起作用:

$class = new example();
$i = 0;
foreach ($class as $key => $value) {
$class->$$key = $arr[$i];
$i++;
}

编辑:

只是为了解释为什么我不能在 example 类中使用任何 setter/getter 方法 - 实际上 example 类是通过反序列化数据库对象创建的。我对这个类(class)没有任何控制权。我正在开发一个 Controller 类,它接收这个 example 类和一个数组。我需要找到一种方法将该数组中的值分配给 example 类的公共(public)属性。

最佳答案

它不起作用,因为分配 key 时有两个 $$:

$class->$$key = $arr[$i];

更改为单个$

$class->$key = $arr[$i];

<强> Codepad demo

在没有变量的情况下访问对象属性时,不需要 $,因此,如果您的 key 存储在变量中,则需要单个 $

也就是说,可能有比这更好的方法来解决问题。看起来像X Y Problem .

关于php - 通过对象属性运行循环并赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26528084/

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