将函数名称写为字符串变量的值

时间:2016-03-07 06:19:36

标签: php

我有一个字符串变量

$worker_name = "video_convert"

我想编写一个名称如下的

的函数
function video_convert(){
}

我怎样才能在PHP中执行此操作?我试过了

function eval($worker_name){
}

eval($worker_name) = function(){
}

但是,似乎这不是在PHP中执行此操作的正确方法。

4 个答案:

答案 0 :(得分:3)

你可以做为

$worker_name = 'video_convert';
$$worker_name = function() {
   echo 'hi';
};
$$worker_name();

答案 1 :(得分:2)

您可以使用call_user_func

$worker_name ="video_convert"
function video_convert($text){
     echo "Hello $text\n";
}

call_user_func($worker_name, 'World');

或者您可以按照您尝试的方式使用:

$worker_name = 'video_convert';
function video_convert(){
    echo __METHOD__;
}
$worker_name();

或者像这样:

$worker_name = function($text)
{
    echo 'Anonymous function call '.$text
};

$worker_name('Hello');

PHP非常灵活。

答案 2 :(得分:1)

你可以像

那样做
$worker_name = "video_convert";

function video_convert(){
    echo "I've called a function using variable";
}

$worker_name();

答案 3 :(得分:1)

如果你想使用eval()函数,请通过以下方式使用它: -

$worker_name = "video_convert()";

function video_convert(){
    echo "Called";
}

eval("$worker_name;");