无法以数组形式访问 PHP 对象


Cannot access PHP Object as Array

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

我在 MAMP 上运行 php 5.6.1。

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

现在我可以echo $obj->srno,打印很好。但是我不能在旧版本的 PHP 上使用我以前使用的echo $obj['srno'],但是 - 它什么也没显示。

任何帮助真的非常感谢。谢谢!

如果你有一个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结果作为数组进行检索。

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