объект против массива, {} vs [], эхо против print_r

Мне нужно пояснить разницу между объектами данных и массивами в 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 нужен для второго? Что мне нужно научиться освежить в памяти, что здесь происходит?

0

Решение

Коэн Ходжимакерс (и Марк Бейкер) правильно ответили на вопрос в комментариях:

«Первое возвращение — это строка json, второе — массив, echo не работает с массивом, но echo работает с строкой json, поскольку допустимая строка в $ record выполняет json_decode ($ record, true ) ;, теперь это будет массив, как ваш второй ответ 🙂 — Koen Hoeijmakers «

Я отмечу это как правильное, когда ТАК позволяет мне через пару дней.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]