将 create_function 替换为 PHP 8 的空 $args

3周前#PHP

我在重写包含 create_function() 的这行代码以准备更新到 PHP 8+ 时遇到问题。

要替换的代码行是:

add_action('widgets_init', create_function('', 'return register_widget("Ctxt_Menu_Widget");'));

我正在尝试将其替换为:

$callback = function(){
    ('', 'return register_widget("DA_Conversationware_Ctxt_Menu_Widget");');
}
add_action('widgets_init', $callback);

但显然,这是不对的,替换代码不允许在该函数中使用数组。
有人可以帮我重写这个吗? 非常感谢!

回答
J
Justen McDermott
3周前

该函数应该是一个真实的(匿名)函数,在 php 中语法有效,所以它应该是这样的

$callback = function(){
    return register_widget("DA_Conversationware_Ctxt_Menu_Widget");
}

然后你可以调用这个函数

add_action('widgets_init', $callback);

现在我们调用了,它作为一个普通的 php 函数执行