我正在涉足 WordPress 插件的“轻量级”PSR-0 AutoLoader,它在我的本地开发服务器上运行良好,但是当我将它推送到 WPEngine 的一个登台服务器时,我得到了这个:
解析错误:语法错误,第 30 行 /nas/wp/www/staging/ahsodesigns/wp-content/plugins/AhSoFunctionality/start.php 中的意外 '[',期待 ')'
这是自动加载器,
// lightweight psr-0 autoloader
spl_autoload_register(function ($classname) {
// make sure we're only loading classes from our directory,
if (preg_match('/AhSo/',$classname)) {
$classname = ltrim($classname, "\\");
preg_match('/^(.+)?([^\\\\]+)$/U', $classname, $match);
$classname = str_replace("\\", "/", $match[1])
. str_replace(["\\", "_"], "/", $match[2])
. ".php";
include_once $classname;
}
});
问题就在这条线上,
$classname = str_replace("\\", "/", $match[1])
. str_replace(["\\", "_"], "/", $match[2])
. ".php";
显然它不喜欢括号......我已经尝试了一些快速的事情,比如将连接全部移动到一行。不走运,我猜这可能是某种 php.ini 的东西,或者我在 WPEngine 的 php 配置中不喜欢的流氓行结束字符。该文件是在 phpStorm 中构建的,带有 Unix 行分隔符“\n”。我希望我有更多的时间来处理它,但你知道这是怎么回事。再次感谢堆栈。最好的。资源。曾经。