Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组中的尾随逗号导致分析错误_Php_Arrays_Symfony_Command Line - Fatal编程技术网

Php 数组中的尾随逗号导致分析错误

Php 数组中的尾随逗号导致分析错误,php,arrays,symfony,command-line,Php,Arrays,Symfony,Command Line,我目前正在做一些关于Symfony 2.8的项目。 我遇到了这个奇怪的PHP错误 我正在构建一个symfony命令,它允许在symfony项目中使用Kahlan测试框架。因此,我需要在Kahlan测试套件中提供Symfony容器,并将其定义为所述套件的全局变量。使用容器感知命令很简单 但问题来了。当我尝试调用使用Symfony的security.authorization\u checker服务的服务时,cli返回以下错误: PHP解析错误:第55行的/tmp/kahlan/data/www/p

我目前正在做一些关于Symfony 2.8的项目。 我遇到了这个奇怪的PHP错误

我正在构建一个symfony命令,它允许在symfony项目中使用Kahlan测试框架。因此,我需要在Kahlan测试套件中提供Symfony容器,并将其定义为所述套件的全局变量。使用容器感知命令很简单

但问题来了。当我尝试调用使用Symfony的
security.authorization\u checker
服务的服务时,cli返回以下错误:

PHP解析错误:第55行的/tmp/kahlan/data/www/project/vendor/symfony/symfony/src/symfony/Component/Security/Core/Authorization/ExpressionLanguageProvider.PHP中出现语法错误,意外

所述文件的代码:

[...]
public function getFunctions()
{
    return array(
        new ExpressionFunction('is_anonymous', function () {
            return '$trust_resolver->isAnonymous($token)';
        }, function (array $variables) {
            return $variables['trust_resolver']->isAnonymous($variables['token']);
        }),

        new ExpressionFunction('is_authenticated', function () {
            return '$token && !$trust_resolver->isAnonymous($token)';
        }, function (array $variables) {
            return $variables['token'] && !$variables['trust_resolver']->isAnonymous($variables['token']);
        }),

        new ExpressionFunction('is_fully_authenticated', function () {
            return '$trust_resolver->isFullFledged($token)';
        }, function (array $variables) {
            return $variables['trust_resolver']->isFullFledged($variables['token']);
        }),

        new ExpressionFunction('is_remember_me', function () {
            return '$trust_resolver->isRememberMe($token)';
        }, function (array $variables) {
            return $variables['trust_resolver']->isRememberMe($variables['token']);
        }),

        new ExpressionFunction('has_role', function ($role) {
            return sprintf('in_array(%s, $roles)', $role);
        }, function (array $variables, $role) {
            return in_array($role, $variables['roles']);
        }),
    );
}
[...]
第55行是最后一个数组元素的行,因此所说的逗号是后面的逗号。 该错误仅在cli中引发。 当然,我试过去掉逗号,一切都很好。但是很明显,我不能改变Symfony的内置类

那么,为什么PHP只在cli模式下对数组中的尾随逗号抛出解析错误,你们知道如何解决这个问题吗


谢谢。

从kahlan捆绑回购协议中可以看出,问题不在我的代码中,而似乎在kahlan身上


升级到新的kahlan版本就解决了这个问题。

从kahlan捆绑回购协议中可以看出,问题不在我的代码中,而似乎在kahlan身上


升级到新的kahlan版本就解决了这个问题。

返回sprintf('in_array(%s,$roles)',$role);我想这条线会导致issue@RahulMeshram我觉得那条线很好。我似乎不是,这是第53条线。第55行向下两行,后面的逗号就是问题所在。return sprintf('in_array(%s,$roles)'),$role);我想这条线会导致issue@RahulMeshram我觉得那条线很好。我似乎不是,这是第53条线。第55行向下两行,后面的逗号是问题所在。