尝试使用期望类似的类:
$client->firstname = 'bob';
$client->lastname = 'jones';
所以我想将这些数据传递给数组中的脚本...其中键和值设置在别处。我想逐步通过数组将键和值传递给类。试着用这个:
while($Val = current($CreateClientData)){
$client->key($CreateClientData) = $Val;
next($CreateClientData);
}
得到这个:
致命错误:无法在写入上下文中使用方法返回值 blahblahpath在第40行。
第40行:$ client-> key($ CreateClientData)= $ Val;
我该怎么做?
答案 0 :(得分:3)
如果$ client已经是某个类的实例,并且$ CreateClientData是一个数组,那么你可能想做这样的事情:
foreach($CreateClientData as $k => $v) {
$client->{$k} = $v;
}
这当然假定数组中的每个键都是$ client实例的有效成员。如果没有,那么在分配值之前你必须做一些额外的检查,否则你将不得不在try / catch中包装赋值。
修改强>
关于为什么代码不起作用的答案是因为PHP不允许将类属性赋给返回值的某些函数。在您的情况下,key($CreateClientData)
会返回一个键。所以你可以改变你的代码,然后添加
$key = key($CreateClientData);
$client->$key = $Val;
但是,无论如何,foreach循环更加清洁。
答案 1 :(得分:1)
为什么不使用foreach循环?
foreach($CreateClientData as $key => $val) {
$client->$key = $val;
}