PHP - 将常规函数转换为内联匿名函数

时间:2014-01-10 09:47:44

标签: php anonymous-function

这是我的功能:

function rp_md5 ($string)
{
    return md5(strrev($string) . $string);
}

我希望将其转换为内联匿名函数,我已经尝试过这段代码:

$foo = $_POST['u_pwd'];
$pwd = function() use($foo) { 
                return md5(strrev($foo) . $foo);
     };

如何在变量$pwd中存储新密码? 通常我必须称之为:

echo $pwd($foo);

对不起我的不好解释。

1 个答案:

答案 0 :(得分:3)

您可能会遇到的问题是您尝试直接将$pwd打印为变量,而不是函数。这种方式$pwd将成为类Closure的对象,不能转换为字符串。你应该打电话。

在您的示例中,它将是:

$foo='adasdsadasd';
$pwd=function() use($foo) {return md5(strrev($foo) . $foo);};
echo $pwd();

返回

  

c22ddae767082a65351481607d0974b7

但是对于use($foo),你希望$ foo是一个全局变量,你的函数几乎不可重用。

使用:

$foo='adasdsadasd';
$pwd=function($foo) {return md5(strrev($foo) . $foo);};

将为您提供使用参数调用$pwd()的机会,因此您可以使用不同的参数每次都使用它。

在这种情况下,您正在使用:

echo $pwd($foo);

要实现相同的输出:

  

c22ddae767082a65351481607d0974b7