我的WP插件中的PHP解析错误-在一台机器上工作,但在另一台机器不工作


PHP Parse error in my WP plugin - works on one machine but not the other

我有一个自定义的WordPress插件,它在我的本地开发机器上运行良好,但在生产服务器上会触发错误。

功能:

function _iniloader_get_dirs($dir) {
        $dirs = array_filter(scandir($dir), function ($item) use ($dir) {
            return (is_dir($dir.'/'.$item) && $item != "." && $item != "..");
        });
        // Use array_values to reset the array keys:
        return array_values($dirs);
}

错误:

分析错误:语法错误,上的(插件中)中出现意外T_FUNCTION第30行

第30行是函数的第二行。

我的本地MAMP服务器=PHP版本5.3.6
Linux生产服务器=PHP 5.3.5版

有人知道这个问题可能是什么吗?为什么它会出现在一个环境中,而不会出现在另一个环境?


更新:

我刚刚注意到,如果我把这个函数放在生产框上的一个常规PHP文件中,它执行得很好——所以它只是在它是WordPress插件的一部分时触发错误,这对我来说就没有什么意义了…

很可能是您对闭包的使用。

这些在PHP>5.3中可用。您的生产服务器要么没有运行5.3,要么是一个可能有问题的小版本。

重构use子句,我想它将在这两个环境中运行。

相关文章: