给出以下代码
public static function &generate($arr)
{
foreach ($arr as $key => $value) {
yield $key => $value;
}
}
这种静态方法应该产生$ key =>每个数组迭代的ref值为$
然后我在另一个类中使用静态方法:
$questions = $request->questions;
foreach (self::generate($questions) as &$question) {
$question['label'] = json_encode($question['label']);
... other code
}
unset($question);
die(var_dump($questions[0]['label']));
我应该有一个json编码的字符串,但我总是有一个数组,我不明白为什么。
questions
属性不存在,它由魔术方法__get
返回(questions
在数组内部,因此__get返回值)$questions
提供给我的foreach,它可以工作,我有我的json编码字符串答案 0 :(得分:1)
您需要确保“一直通过”
的传递public static function &generate(&$arr)
{
foreach ($arr as $key => &$value) {
yield $key => $value;
}
}
适用于$arr
和$value