我第一次尝试使用动态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);
}
}
do_the_widgets()
操作仅接受直接回显并打印窗口小部件的内容。
$o99_brsa_options[content]
是经过验证的数组,其中包含$i
个元素(每个元素都是内容)。
奇怪的是,$i
正在$widgt_id
和$widgt_name
上工作,但在create_function()
上,我得到了在所有小部件中打印的相同值。 (echo $out
)
似乎我不知道如何将一个简单的变量传递给新函数(我在create_function()中使用全局,但它现在几乎没有帮助。
那么,现在我的错误/误解/误用是什么:-) ??
答案 0 :(得分:19)
create_function
在stone age
,kaᵠ used pen and paper to write applications时,PeeHaa埽 got a beer因为他写了hello would
,现在世界变得更好请使用closures
}
$f = function ($out) {
echo $out;
};
$f("Welcome");
有一天你会感谢我,但是你只能create_function
使用$fn = create_function(
'$x',
'return $x; } $foo = 42; function foo($int) { return $int; '
);
Gordon(过去发送给我们的机器来折磨我们)他写了这个
{{1}}