可捕获的致命错误:对象无法转换为字符串 - 但var_dump表示它是一个字符串

时间:2013-08-08 21:14:41

标签: php

我遇到了很多人已经问过的问题:当尝试回显字符串时,“可捕获的致命错误:类的结构对象无法转换为D:\ Programy \ XAMP \ htdocs \中的字符串第30行的电子历史\ test.php“。对于大多数相关问题,建议尝试var_dump()功能。但是,我试过这个,一切似乎都没问题,除了它抛出错误。

我的代码(测试版):

$place = Struct::factory('gid','lat','lon','radius');

$places = loadPlaces('', 50, 14);
$j = 0;

var_dump($places[$j]->gid);
echo "$places[$j]->gid";

var_dump和echo的输出如下:

string(1) "6"
Catchable fatal error: Object of class Struct could not be converted to string in D:\Programy\XAMP\htdocs\e-history\test.php on line 30

通常$ object->值表示法没有问题,我不知道为什么它在这种情况下不起作用。我在阵列/对象不匹配方面遇到了一些问题,但我几乎肯定不是这种情况。知道怎么解决吗?

编辑:我的代码中的第30行是:echo "$places[$j]->gid";

1 个答案:

答案 0 :(得分:2)

这两行之间存在差异:

echo "$places[$j]->gid";
echo $places[$j]->gid;

第一个错误地尝试访问字符串变量中的对象。第二个访问它就像var_dump一样。没有必要将变量包装在双引号内!

第一个版本应该是这样的:

echo "{$places[$j]->gid}";