我尝试在一个数组中存储一个函数,但它一直给我错误:
意想不到的'功能' (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;
},
),
);
如果有人知道问题是什么以及如何解决,请帮助我:)
答案 0 :(得分:3)
static
值。可悲的是,匿名函数并不是常数"足以算数。后来的PHP版本允许一些有限的表达式,如2 + 4
(因为结果总是不变的),但仅此而已。函数声明太复杂,无法在static
上下文中处理(您可以随时向数组添加函数,您只能初始化就这样*)。
*这种限制的原因是static
声明在与运行时代码不同的解析阶段处理,并且解析阶段不能处理除原始值之外的任何内容。
答案 1 :(得分:1)
再次尝试(在代码末尾有2个,太多了,请删除静态)
编辑:添加功能,以便您可以使用其他类中的数组。
function $events_func()
{
$events = array(
'View Page' => array(
'properties' => array(
'previous_event',
'number_view_page',
),
'trigger' => function($foo){
return $foo;
}
)
);
return $events;
}