无法将PHP Object作为Array访问

时间:2014-11-14 18:31:24

标签: php mysql arrays

我面临一个奇怪的问题。这可能只是一个愚蠢的错误,我只是缺少一些基础知识。

我在MAMP上运行php 5.6.1。

我有一个简单的数组,我从一个mysql查询得到。使用foreach循环,我可以print_r()每个值,这给了我:stdClass Object ( [srno] => 6 [link] => this-is-link )

现在我可以echo $obj->srno,打印得很好。但我不能使用我以前使用的echo $obj['srno'],在较旧版本的PHP上,但它没有显示任何内容。

任何帮助真的很感激。谢谢!

2 个答案:

答案 0 :(得分:1)

如果你有一个stdClass对象并且需要将它作为一个数组来处理,你可以很容易地将它转换为数组:

$someObj = new stdClass();
$someObj->foo = "bar";

$someArray = (array)$someObj; // Cast the object to an array

echo $someArray['foo']; // Will give you "bar"

工作示例:http://3v4l.org/nni1Y

当然,正如评论已经指出的那样,您可能希望首先将mysql结果检索为数组。

答案 1 :(得分:0)

正如您所说,您的结果作为对象返回,因此您可以使用它来使用它 $ obj-> your_field_name显示字段值。但是你不能使用$ obj [' field_name'];