没有匿名函数的解决方法

Workaround for not having anonymous functions

我有 PHP 5.2 并且正在尝试使用这个匿名函数

$values = array_map(function ($value) use ($link){
    if($value == null) return null;
    return mysqli_real_escape_string($link, (string)$value);
}, array_values($input));

服务器的响应

PHP Error Message Parse error: syntax error, unexpected T_FUNCTION in MY FILE on line 16

所以服务器不会读取这个匿名函数,所以我必须正确定义它?

$func = function ($value) use ($link){
    if($value == null) return null;
    return mysqli_real_escape_string($link, (string)$value);
};
$values = array_map($func, array_values($input));

现在还在工作。 有帮助吗?

匿名函数从 PHP 5.3 开始可用,因此 5.2 没有它们

这应该适用于所有版本的 PHP

function array_stuff($value){
    global $link; // I hate this sooo much but necessary evil here
    if($value == null) return null;
    return mysqli_real_escape_string($link, (string)$value);
};
$values = array_map('array_stuff', array_values($input));