Мне нужно пояснить разницу между объектами данных и массивами в PHP + mySQL и кое-что, что я считаю связанным: представление «данных типа массива» с помощью { }
против [ ]
Я использую PHP, MySQL и RedBean ORM.
Я вытащил запись (строку таблицы) из таблицы и сохранил ее в PHP в переменной с именем $record
Когда я запускаю следующую команду:
echo $record;
Я получаю следующий вывод:
{"id":"1","name":"Frankie Johnnie & Luigo Too","address":"939 W El Camino Real, Mountain View, CA","lat":"37.386429","lng":"-122.085838","fee":"0.00"}
Затем я вытащил имена столбцов из таблицы и сохранил их в переменной с именем $fields
Когда я запускаю следующую команду:
echo $fields;
Я получаю следующий вывод:
Notice: Array to string conversion in /Applications/XAMPP/xamppfiles/htdocs/devserver/crud/show.php on line 18
Array
Когда я запускаю следующую команду:
print_r($fields);
Я получаю следующий вывод:
Array ( [id] => int(11) [name] => varchar(60) [address] => varchar(80) [lat] => float(10,6) [lng] => float(10,6) [fee] => decimal(5,2) )
Почему echo
работать для первого, но print_r
нужен для второго? Что мне нужно научиться освежить в памяти, что здесь происходит?
Коэн Ходжимакерс (и Марк Бейкер) правильно ответили на вопрос в комментариях:
«Первое возвращение — это строка json, второе — массив, echo не работает с массивом, но echo работает с строкой json, поскольку допустимая строка в $ record выполняет json_decode ($ record, true ) ;, теперь это будет массив, как ваш второй ответ 🙂 — Koen Hoeijmakers «
Я отмечу это как правильное, когда ТАК позволяет мне через пару дней.
Других решений пока нет …