在PHP中使用变量作为函数名称

时间:2019-05-28 11:39:27

标签: php wordpress function variables

我正在WordPress中创建动态函数,要求我动态创建函数名称。

在这种情况下,我需要为此重力形式代码生成一个唯一的函数名称:

add_filter( 'gform_validation_message', 'change_message', 10, 2 );
function change_message( $message, $form ) {
    return "<div class='validation_error'>Failed Validation - " . $form['title'] . '</div>';
}

因此,我有一个变量(会不时更改)要用作函数名...

$newitem = 'new_item';

...并尝试了此方法...

add_filter( 'gform_validation_message', $newitem, 10, 2 );
function $newitem( $message, $form ) {
    return "<div class='validation_error'>Failed Validation - " . $form['title'] . '</div>';
}

...但是显然那是行不通的。但是我认为您对我要实现的目标有所了解。

像这样的事情还有可能吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

$thing = 'some_function';
$$thing = function() {
   echo 'hi';
};
$some_function();

来源-Use a variable to define a PHP function

答案 1 :(得分:0)

您可以简单地将Anonymous function传递给add_filter函数作为参数:

$newitem = function($message, $form) {
    return "<div class='validation_error'>Failed Validation - " . $form['title'] . '</div>';
};

add_filter('gform_validation_message', $newitem, 10, 2);