我遇到了一个奇怪的问题。这可能只是一个愚蠢的错误,我只是缺少一些基础知识。
我在 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']使用;