2015-03-10 3 views
0

Мне нужно разъяснение относительно разницы между объектами данных и массивами в PHP + mySQL, и что-то, что я думаю, связано: представление данных типа массива с { } vs [ ]объект vs array, {} vs [], echo vs print_r

Я использую 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

Whe п я выполнить следующую команду:

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

Возможный дубликат [В чем разница между эхом, печатью и печатью \ _r в PHP?] (Http://stackoverflow.com/questions/1647322/whats-the-difference-between-ech-print-and- print-r-in-php) –

+3

$ record - объект json_encoded; $ fields - это массив –

+3

, первый возврат - это строка json, вторая - массив, echo не работает над массивом, но echo делает в json-строке, так как его допустимая строка в $ record делает json_decode ($ record, true); теперь он будет массивом, как и ваш второй возврат :) – Neat

ответ

0

Koen Hoejimakers (и Марк Бейкер) ответил на вопрос правильно в комментариях:

«Первое возвращение является строка JSON, второй массив, эхо не работает на массив, но эхо делает в строке json, так как его допустимая строка в $ record делает json_decode ($ record, true); теперь он будет массивом точно так же, как и ваш второй возврат :) - Koen Hoeijmakers "

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