为什么我不能将php数组元素定义为匿名函数?

时间:2011-01-17 07:07:13

标签: php arrays function

为什么这不起作用?

$arr=array(
7,
'h',
function($text){echo $text;}
);

$arr[2]('some text');

我想让它回应'某些文字',但它说有一个意想不到的T_FUNCTION。

2 个答案:

答案 0 :(得分:3)

据我所知,PHP 5.3.0中添加了匿名函数。此错误似乎表明您使用的版本不支持它们。

答案 1 :(得分:2)

确实,这似乎是正确的答案。我不确定数组语法中的函数是否可行(即使在PHP 5.3.x中),所以我刚刚测试它并且看起来确实有效:

<?php
echo phpversion( ) . ": ";
$foo = array( 
    'test' => function( ) {
        return 'This is my test.';
    }
);

echo $foo['test']( );
?>

那个输出(当然是在我的机器上):

  

5.3.2-1ubuntu4.7:这是我的测试。