在Heroku上出现PHP错误,但在本地环境中没有


PHP Error on Heroku but not on local environment

在Heroku上,我在该文件中收到一个"分析错误:语法错误,在/app/www/Embed/UrlResolver.php第35行出现意外的'[]":https://github.com/oscarotero/Embed/blob/master/Embed/UrlResolver.php

奇怪的是,它在我当地的环境中运行良好,(MAMP)。一个区别是Heroku使用的是PHP 5.3.27,而我的MAMP版本是5.4.10,但这似乎不太可能是问题所在(脚本调用"PHP 5.3+")。我很想测试它,但我还没有找到一个5.4构建包,它不能让一切都变得一团糟。

这个终端输出中有什么东西可以解释错误吗?

-----> Removing .DS_Store files
-----> PHP app detected
-----> Bundling mcrypt version 2.5.8
-----> Bundling Apache version 2.2.25
-----> Bundling PHP version 5.3.27
-----> Discovering process types
   Procfile declares types -> (none)
   Default types for PHP   -> web

有人知道为什么会发生这种事吗?

iirc正确PHP 5.4支持

$value = somethingWhichReturnsAnArray()[37];

而PHP 5.3没有并且会报告一个意外的"["。可能就是这样。也许你正在使用的表示它是5.3+的库实际上不是。查找该文件的第35行,看看它是否在这样做。如果是这样,应该可以通过为返回的数组/集合使用一个中间变量来轻松修复它。