object vs array,{} vs [],echo vs print_r

时间:2015-03-10 19:13:53

标签: php mysql arrays redbean

我需要澄清PHP + mySQL中数据对象和数组之间的区别以及我认为相关的东西:表示"数组类型数据"与{ } vs [ ]

我正在使用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?我需要学习什么来了解这里发生的事情?

1 个答案:

答案 0 :(得分:0)

Koen Hoejimakers(和Mark Ba​​ker)在评论中正确回答了问题:

“第一个返回是一个json字符串,第二个是一个数组,echo对数组不起作用,但echo对一个json字符串有效,因为它是一个有效的字符串,在$ record上,做一个json_decode($记录,真实);,它现在将成为一个数组,就像你的第二次回归:) - Koen Hoeijmakers“

当SO让我在几天内时,我会将此标记为正确。