Учитывая следующий код
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
атрибут в $ request var не существует, он возвращается магическим методом __get
(questions
находится внутри массива, поэтому значение возвращается __get)$questions
к моему foreach, это работает, и у меня есть моя закодированная строка jsonВы должны обеспечить передачу по ссылке «все путем»
public static function &generate(&$arr)
{
foreach ($arr as $key => &$value) {
yield $key => $value;
}
}
для обоих $arr
а также $value
Других решений пока нет …