我尝试将一个函数存储在一个数组中,但它一直给我这个错误:
unexpected 'function' (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/constant 表达式初始化。可悲的是,匿名函数的“常数”不足以计算。后来的 PHP 版本允许一些有限的表达式,例如 2 + 4
(因为结果总是常量),但仅此而已。函数声明太复杂,无法在 static
上下文中处理(您可以随时将函数添加到数组 afterwards,只是不能初始化 就是这样*)。
* 此限制的原因是 static
声明在与运行时代码不同的解析阶段处理,并且该解析阶段只能处理原始值。
关于数组中的php函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37829355/