douliao8760 2010-12-04 20:00
浏览 40

使用变量名称定义函数?

I need to create a column-system for Wordpress with shortcodes, which is not a problem, but I'm trying to make it with less code.

I have an array with the data needed, I loop through it, create a unique-named function and set it as shortcode-function. The third step is a mystery. How can I create a function from a variable.

Here's an example, how it should be done:

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

However, it seems that it's not possible to make it work like that in PHP. Is there any way to make this work, as I would not want to write all the (identical) functions separated. I could make the shortcode something like [col first]text[/col] but the client wants to have different names for every one of them.

  • 写回答

2条回答 默认 最新

  • doutan5844 2010-12-04 20:05
    关注

    you can use the double dollar syntax to use the value of a variable as a variable identifier,

    Example:

    $variable = "test";
    $$variable = "value of test"
    
    echo $test; //or echo $$variable;
    

    I have never tried but you way want to try:

    foreach($data as $key => $value)
    {
        function $$value($atts,$content)
        {
        }
        add_shortcode($value,$value);
    }
    

    or a function like create_function

    if your using PHP 5.3 or greater then you can do something like so:

    $$value = function()
    {
    
    }
    

    which should work fine

    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图