当前位置: 首页 > 面试题库 >

在PHP 5.3和5.4中访问数组的差异或某些配置不匹配?

养枫涟
2023-03-14
问题内容

我正在尝试像这样访问嵌套数组元素:

$dbSettings = $sm->get( 'Config' )[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];

它在Module.phpZend的Framework 2项目中。$sm->get('Config')返回一个数组,我可以使用PHP
5.4在本地使用上述代码访问该数组,同时在客户端计算机上执行此操作,这会给我一个错误:

Parse error: syntax error, unexpected '[' in /home/.../azk/module/Main/Module.php on line 121

PHP 5.3 <=> 5.4在访问嵌套数组方面是否有任何区别,或者我在客户端machne上设置了一些不同的默认PHP配置?


问题答案:

数组取消引用是您正在使用的,是在PHP 5.4中引入的,在PHP 5.3中不起作用。

所以

$dbSettings = $sm->get( 'Config' )[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];

需要是:

$dbSettings = $sm->get( 'Config' );
$params     = $dbSettings[ 'doctrine' ][ 'connection' ][ 'orm_default' ][ 'params' ];


 类似资料:
  • 给定文档中的术语匹配,访问匹配词的最佳方式是什么?我读过这篇文章http://searchhub.org//2009/05/26/accessing-words-around-a-position-match-in-lucene/,但问题是Lucene API自这篇文章(2009)以来完全改变了,有人能告诉我在Lucene的新版本中如何做到这一点吗,比如Lucene4.6.1? 编辑:

  • 问题内容: matchs :将检查输入的完整字符串是否等于字符串对象中存在的值。 equalsIgnoreCase :忽略大小写,它检查输入的字符串是否等于字符串对象中存在的值。 equals :区分大小写,它检查输入的字符串是否等于字符串对象中存在的值。 这就是我对String类中存在的方法的了解。 是否还有其他差异(我是否缺少任何有价值的差异)? 如果没有差异,那么为什么不能将Match方法从

  • 为什么我会得到异常,我如何访问某些字符串中的某些字符位置?

  • 它看起来像hamcrest(尽管看起来,还有更多)。为什么我会选择使用(除了看起来类稍微小一点之外),为什么这两个类如此相似?

  • 问题内容: 做一个简单的测试时,我就在用Java编写正则表达式 但是在JavaScript中 这里发生了什么?我可以使我的Java regex模式“ q”的行为与JavaScript相同吗? 问题答案: 在JavaScript中,返回与使用的正则表达式匹配的子字符串。在Java中,检查整个字符串是否与正则表达式匹配。 如果要查找与正则表达式匹配的子字符串,请使用Pattern和Matcher类,例

  • 问题内容: 如何为给定的目标值搜索和查找数组中最接近的值? 假设我有这个示例数组: 例如,当我用目标值0搜索时,该函数应返回0;否则,该函数将返回0。当我搜索3时,它将返回5;当我搜索14时,它将返回12。 问题答案: 将您要搜索的数字作为第一个参数,将数字数组作为第二个参数: