У меня проблема с преобразованием объекта stdClass в массив. Я пытался таким образом:
return (array) $booking;
или
return (array) json_decode($booking,true);
или
return (array) json_decode($booking);
Массив до приведения заполнен одной записью, после моей попытки приведения он пустой. Как преобразовать / преобразовать его без удаления его строк?
массив перед приведением:
array(1) { [0]=> object(stdClass)#23 (36) { ["id"]=> string(1) "2" ["name"]=> string(0) "" ["code"]=> string(5) "56/13" } }
после литья пусто NULL, если я пытаюсь сделать var_dump($booking);
Я также пробовал эту функцию, но всегда пустой:
public function objectToArray($d) {
if (is_object($d)) {
// Gets the properties of the given object
// with get_object_vars function
$d = get_object_vars($d);
}
if (is_array($d)) {
/*
* Return array converted to object
* Using __FUNCTION__ (Magic constant)
* for recursive call
*/
return array_map(__FUNCTION__, $d);
}
else {
// Return array
return $d;
}
}
var_dump($booking);
выходы NULL
?
var_dump()
перед кастингом. Не используйте повторно одно и то же имя переменной. если $booking
что-то было до кастинга, то все равно должно быть что-то до кастинга, а не что-то другое после. Различие между входными и обрабатывающими переменными, иначе вы столкнетесь с проблемами, которые вы больше не понимаете, что вы там делаете.
return
. А работатьjson_decode
с массивом мне кажется довольно отчаянным, вероятно, слишком долго сидеть перед компьютером, и теперь пришло время сделать перерыв?