阵列内的PHP功能



我尝试在数组中存储一个函数,但它一直给我这个错误

意外的'函数'(t_function)

我在互联网上环顾四周,但他们主要说我应该使用PHP版本5.3及以上,而我使用5.6.21

这是我的数组:

       static $Events = array(
            'View Page' => array(
                'properties' => array(
                    'previous_event',
                    'number_view_page',
                ),
                'trigger' => function($foo){
                    return $foo;
                },
            ),
        );

如果有人知道问题是什么以及如何解决问题,请帮助我:)

static值需要用static/常数表达式初始化。可悲的是,匿名函数的"恒定"不足以计数。后来的PHP版本允许一些有限的表达式(例如2 + 4)(因为结果始终是恒定的),但仅此而已。函数声明太复杂了,无法在static上下文中处理(您可以随时添加函数 ,您只是不能以这种方式初始化它*)。

*此限制的原因是static声明是在与运行时代码不同的解析阶段处理的,而解析阶段除了原始值以外无法处理任何内容。

再试一次(您在代码末尾有2个,太多,请删除静态)

编辑:添加函数,以便您可以使用其他类的数组。

function $events_func()
{
    $events = array(
        'View Page' => array(
            'properties' => array(
                'previous_event',
                'number_view_page',
            ),
            'trigger' => function($foo){
                return $foo;
            }
        )
    );
return $events;
}

最新更新