2017-02-25 180 views
1

有人可以幫助我動態功能? 我變量函數。未定義的功能

<?php 
namespace app\components\Images; 


function mobilePhone(){...} 
function callFunctionForOrder($funcName) 
{ 
    $funcName(); 
} 
callFunctionForOrder('mobilePhone'); 

並獲得Call to undefined function mobilePhone()

但是! 如果它看起來像

<?php 
namespace app\components\Images; 


function mobilePhone(){...} 
function callFunctionForOrder($funcName) 
{ 
    mobilePhone(); 
} 

然後它完美的工作!我勒個去?我該如何解決這個問題?

我這麼做根據http://php.net/manual/en/functions.variable-functions.php

+0

您忽略了名稱空間這一事實:'callFunctionForOrder(__ NAMESPACE__。 '\\'。 'mobilePhone');' –

+0

太棒了!非常感謝你!發佈它就像一個答案,所以我可以選擇它作爲最好的;) – DarkyDash

回答

0

糾正你的功能類似下面

function callFunctionForOrder($funcName) 
{ 
    call_user_func(__NAMESPACE__ .'\\'.$funcName); 
} 

例如

腳本

[email protected]:~$ cat test.php 
<?php 
namespace app\components\Images; 


function mobilePhone(){ echo 'mobile'.PHP_EOL; } 
function callFunctionForOrder($funcName) 
{ 
    call_user_func(__NAMESPACE__ . '\\'.$funcName); 
} 
callFunctionForOrder('mobilePhone'); 

?> 

輸出

[email protected]:~$ php test.php 
mobile