从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);
}
有人可以帮助我修复我的代码吗?
谢谢
答案 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)
在您的问题中,代码中使用的参数和变量似乎不匹配。也许$class_list
在父范围内?但是$atts
呢?因此,我假设您实际上想通过$class_list
。进行相应的调整。
$func = function($class_list, $content = null)
{
return "<div class='$class_list'>" . do_shortcode($content) . "</div>";
}
add_shortcode($shortcode, $func);