Php - 理解create_function() - 传递简单变量

Obm*_*nen 5 php lambda create-function dynamic-function

我第一次尝试使用动态create_function,到目前为止,没有太大的成功:-)

我的功能是:

 function o99_brsa_custom_widgets() {
        global $wp_meta_boxes;
        global $o99_brsa_options;

        for($i=0; $i> count($o99_brsa_options[content]); $i++) {

            $widgt_id = 'o99_dashboard_widget_dyn' . $i;
            $widgt_name = 'obmek99 widget name' . $i;
            $out = $o99_brsa_options[content][$i];
            $f = create_function(' $out ',' global $out; echo $out;');
            do_the_widgets($widgt_id, $widgt_name, $f);
         }
    } 
Run Code Online (Sandbox Code Playgroud)

do_the_widgets()操作仅接受直接回显并打印窗口小部件的内容.

$o99_brsa_options[content]是一个带有$i元素的验证数组(每个都是内容).

奇怪的是,它$i正在工作$widgt_id,$widgt_name但是create_function()我得到了所有小部件中打印的相同值.(echo $out)

似乎我不知道如何将一个简单的变量传递给新函数(我在create_function()中使用全局,但它现在几乎没有帮助.

那么,现在我的错误/误解/误用是什么:-) ??

Bab*_*aba 19

create_function是时候stone age,当kaᵠ用笔和纸写申请时,PeeHaa埽因为他写了啤酒hello would,现在世界好了请使用closures

$f = function ($out) {
    echo $out;
};

$f("Welcome");
Run Code Online (Sandbox Code Playgroud)

你有一天会感谢我,但你只能使用create_function如果你是戈登(过去的机器送到这里折磨我们)他写的这个

$fn = create_function(
    '$x',
    'return $x; } $foo = 42; function foo($int) { return $int; '
);
Run Code Online (Sandbox Code Playgroud)

观看现场演示