2016-03-07 24 views
0

我有一個字符串變量寫作功能名稱作爲一個字符串變量的值

$worker_name = "video_convert" 

我想寫跟我怎樣才能做到這一點的名稱,如以下

function video_convert(){ 
} 

功能PHP?我試圖

function eval($worker_name){ 
} 

eval($worker_name) = function(){ 
} 

但是,現在看來似乎不是這樣做在PHP的正確方法。

+0

什麼是你想怎麼辦?爲什麼要調用你想要的方式? –

+0

你想從本質上隨機化你的函數的名字?這是一個壞主意。做什麼的‽ – deceze

回答

3

你可以做到這一點作爲

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

你可以做有點像爲

$worker_name = "video_convert"; 

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

$worker_name(); 
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(); 

OR這樣的:

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

$worker_name('Hello'); 

PHP是靈活的。

1

如果你想使用eval()函數,然後通過下面的方式來使用它: -

$worker_name = "video_convert()"; 

function video_convert(){ 
    echo "Called"; 
} 

eval("$worker_name;"); 
相關問題