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

Php-了解create_function()-传递简单变量,php,lambda,create-function,dynamic-function,Php,Lambda,Create Function,Dynamic Function,我第一次尝试使用动态的create_函数,到目前为止,没有太大成功:-) 我的职能是: 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_dash

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

我的职能是:

 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\u theu widgets()
操作仅接受直接回送并打印小部件的内容

$o99_brsa_options[content]
是一个经过验证的数组,包含
$i
元素(每个元素都是内容)

奇怪的是,
$i
正在处理
$widgt\u id
$widgt\u name
但是在
创建函数()
上,我在所有小部件中都得到了相同的值。(
echo$out

似乎我不知道如何将一个简单的变量传递给新函数(我正在使用global inside create_function(),但目前它没有什么帮助


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

创建函数
是在
石器时代
,当时,因为他写了
hello will
,世界现在更好了请使用
闭包

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

$f("Welcome");
总有一天你会感谢我的,但你只能使用
create_function
如果你是(过去派来折磨我们的机器)他写了这封信

$fn = create_function(
    '$x',
    'return $x; } $foo = 42; function foo($int) { return $int; '
);

如果
$out
将是一个全局变量,那么您将如何将其作为参数传递?因为不知何故,如果我不这样做,则不会打印任何内容。如果您将其作为全局变量使用,则其值将在函数外部配置,然后您将在函数内部修改(或不修改)然后,这一修改将适用于全球,而不仅仅是国内。如果只需要传入一个参数,则删除全局参数。如果需要同时执行这两项操作,请更改参数的名称,然后让它在函数内部修改
$out
。示例:
create_函数('$arg','global$out;echo$out.$arg;'):-)我现在已经在感谢你了:-)。但是,如果我需要对PHP5.2.9的支持,该怎么办?你知道“PHP5.2.9”中有多少bug吗?我想你应该马上升级。。。。因为如果你让它工作起来,更多的问题会随之而来是的,先生!:-)事实上你是对的。谢谢你的提示(我不知道闭包,我想这些工具对进度很重要:-)。你的链接很酷(特别是99啤酒),欢迎你。。。这里有更多的提示和建议。因此,我想我需要将标题从“理解创建函数()”改为“我是否应该使用创建函数()?
”——答案会短得多。。