使用变量名称定义函数?

Mar*_*ine 2 php wordpress function

我需要使用短代码为Wordpress创建一个列系统,这不是问题,但我试图用更少的代码来实现它.

我有一个包含所需数据的数组,我遍历它,创建一个唯一命名的函数并将其设置为shortcode-function.第三步是个谜.如何从变量创建函数.

这是一个例子,它应该如何完成:

$data[] = "first";
$data[] = "second";
foreach($data as $key => $value) {
    function $value($atts,$content) {
        return '<div class="'.$value.'">'.$content.'</div>';
    }
    add_shortcode($value,$value);
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎不可能让它在PHP中像那样工作.有没有办法使这项工作,因为我不想写所有(相同)功能分开.我可以使短代码类似,[col first]text[/col]但客户希望每个都有不同的名称.

Rob*_*itt 5

您可以使用double dollar语法将变量的值用作变量标识符,

例:

$variable = "test";
$$variable = "value of test"

echo $test; //or echo $$variable;
Run Code Online (Sandbox Code Playgroud)

我从来没有尝试,但你想尝试:

foreach($data as $key => $value)
{
    function $$value($atts,$content)
    {
    }
    add_shortcode($value,$value);
}
Run Code Online (Sandbox Code Playgroud)

或像create_function这样的函数

如果您使用PHP 5.3或更高版本,那么您可以这样做:

$$value = function()
{

}
Run Code Online (Sandbox Code Playgroud)

这应该工作正常