PHP 7.2中不推荐使用函数create_function

时间:2018-07-02 19:11:11

标签: php deprecated

从PHP 7.2开始不推荐使用create_function函数。以前在PHP 5中可以使用,但是在更新PHP崩溃之后。

$func = create_function('$atts, $content = null','return "<div class=\"' . $class_list . '\">" . do_shortcode($content) . "</div>";' );
add_shortcode($shortcode, $func);
}

有人可以帮助我修复我的代码吗?

谢谢

2 个答案:

答案 0 :(得分:2)

自PHP 5.3起,实现此目的的首选方法是使用匿名函数。要捕获外部变量的值,请使用use声明。所以应该是:

$func = function($atts, $content = null) use ($class_list) {
    return "<div class='$class_list'>" . do_shortcode($content) . "</div>"; 
}

答案 1 :(得分:1)

请改用Anonymous Function

在您的问题中,代码中使用的参数和变量似乎不匹配。也许$class_list在父范围内?但是$atts呢?因此,我假设您实际上想通过$class_list。进行相应的调整。

$func = function($class_list, $content = null)
{
    return "<div class='$class_list'>" . do_shortcode($content) . "</div>"; 
}

add_shortcode($shortcode, $func);