【问题标题】:Is there a PHP setting that sets whether you can index the result of a function?是否有设置是否可以索引函数结果的 PHP 设置?
【发布时间】:2011-09-13 12:03:41
【问题描述】:

我有两台服务器。他们都在运行 php 5.3.3。此代码在一台服务器上运行,并在另一台服务器上返回语法错误。是否有影响此行为的 php ini 设置?我在 PHP 文档中找不到任何相关内容,但我可能找错地方了。

服务器 1

> php -v
PHP 5.3.3 (cli) (built: Sep 23 2010 14:15:16) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with Xdebug v2.0.3, Copyright (c) 2002-2007, by Derick Rethans

php > echo explode(" ", " foo ")[1];
foo

服务器 2

> php -v
PHP 5.3.3 (cli) (built: Jan 31 2011 15:57:29) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

php > echo explode(" ", " foo ")[1];
Parse error: syntax error, unexpected '[', expecting ',' or ';' in php shell code on line 1

另一个想法:两台服务器上的 PHP 都是自定义编译的,所以它也可以是不同的编译标志。

【问题讨论】:

  • 您可以尝试从两台服务器获取 php.ini 之间的差异。

标签: php configuration xdebug


【解决方案1】:

没有。

PHP 不支持这种语法。 It's on the trunk,但尚未发布(自 PHP 5.3.3 起)。

我不知道它在您的第一台服务器上是如何工作的,但也许这个“Xdebug”正在产生影响?

【讨论】:

    【解决方案2】:

    啊哈!我想通了。

    我们安装了 Facebook 的 XHP 来分析我们的开发服务器。这种语法(非常优雅)被添加到 PHP 模块中。这是服务器 1 和服务器 2 之间 php.ini 文件的差异:

    > ; XHP https://github.com/facebook/xhp/wiki/Building-XHP
    > extension=xhp.so
    > ; adds support for the [] operator on the return value of a function
    > xhp.idx_expr = 1
    > ;  Tracking errors in XHP applications is very difficult without annotations.
    > xhp.include_debug = 1
    

    我喜欢这种语法,所以我可能会在另一台服务器上安装 XHP。感谢 Michas 建议我区分 ini 文件的帮助。

    【讨论】:

    • 这里的另一个建议可能是将 phpinfo 输出为来自php -i 或类似内容的文本。
    猜你喜欢
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 2017-11-06
    相关资源
    最近更新 更多