在PHP中将一个转换对象的值转换为一行中的数组

时间:2016-06-07 12:20:14

标签: php arrays casting

我有一个对象,其中有几个无名对象需要解析。为了解决这个问题,我必须在遍历它时在不同的点上多次转换为数组。在我的localhost环境中,在Windows机器上运行PHP7,我遍历了对象,然后在需要时将其转换为数组,并调出我知道的变量索引然后再次转换为数组,所有这些都在一行中。

$item = ((array)((array)$items[$x])['row'][0]);

这种方法导致PHPStorm将其标记为错误,但在浏览器中运行良好。但是,一旦我将此代码带到我在Amazon Linux环境中运行PHP版本5.3.29的实时环境中。我得到了:

[server]目前无法处理此请求。 HTTP ERROR 500

但是,一旦我通过将转换分成不同的行来更改代码,它就可以正常工作。

$item = (array)$items[$x];
$item = (array)$item['row'][0];

我的问题是:为什么第一种方法在我的localhost环境中起作用,但是一旦进入实时环境就会崩溃页面?我搜索了PHP7发布的笔记,因为虽然它可能是一个较新的功能,因为PHPStorm将其标记为错误,但找不到任何解决此问题的内容。

作为附注,我还在我的localhost中启用了以下扩展名:

  • 延长= php_curl.dll
  • 延长=中php_mbstring.dll
  • 延长= php_mysqli.dll
  • 延长= php_openssl.dll
  • 延长= php_pdo_mysql.dll
  • 延长= php_pdo_sqlite.dll
  • 延长= php_sqlite3.dll

1 个答案:

答案 0 :(得分:1)

如Mark所述,将PHP升级到5.4将允许您使用单行示例:

* Server GSE is not blacklisted