0

所以我一直在用php(第一个计时器)编写这个类,它有一个基于参数返回函数的函数,它看起来像这样:

$f=function($a){
    return function($b){
        return $a.$b;
    };
};

echo $f('a')('b');

但我不知道为什么它不符合我的要求。有谁知道做到这一点的最佳方法?

基本上我需要编写一个接受字符串($type)的函数并编写一个接受其他字符串并将它们转换为html输入的函数,如下所示:

public static function InputFormat($t){
    return function ($f, $p, $e){
        return 
            "<div class='inputformat' id='".$f."'>".
                "<ul>".
                    "<li id='namefield'>".$f."</li>".
                    "<li id='input'><input name='".$f."' type='".$t."' value='".$p."'></li>".
                    "<li id='error'>".$e."</li>".
                "<ul>".
            "</div>";
    };
}
4

1 回答 1

3

首先,你的功能看起来不太好。

你的功能应该是这样的:

$f = function($a){
   return function ($a) use ($b) {
            return $a.$b;
         };
};

第二:你不能像$f('a')('b');这样调用你的函数。. 你这样调用你的函数

$f2 = $f('a');
echo $f2('b');

这就是闭包在 php 中的工作方式!

我希望这能帮到您。问我是否有问题。

于 2013-10-11T10:57:12.117 回答