2011-05-01 75 views
1

我有一個這樣的函數變量... $ aName =「My Name」;如何在php中設置函數變量的變量?

$sayHelloFunction = public function sayHello($aName){ 
     echo($aName); 
    } 

,我有這樣的事情.....

callAFunctionFromFunction($sayHelloFunction); 

裏面的 「callAFunctionFromFunction」,我這樣做:

  if(is_callable($sayHelloFunction)) { 
        $sayHelloFunction(); 
     } 

我發現, 「我的名字」不能顯示,我做錯了什麼...

回答

2

我建議你看看herehere這些精確的線程處理傳遞函數作爲參數。另外在PHP中關閉(匿名函數)沒有名字(這就是爲什麼他們被稱爲匿名),所以你應該做的就是這樣的。

<?php $sayHelloFunction = function($aName){ 
    echo($aName); 
}; 
if(is_callable($sayHelloFunction)) $sayHelloFunction("Testing 1,2,3"); 
+0

那麼,[關閉已添加在PHP 5.3](http://php.net/manual/en/functions.anonymous.php)。這裏只有'public'無效。 – 2011-05-01 07:36:36

2

函數sayHello需要一個參數$ aName,但是當你調用它時,你不通過在一個值。

你需要做的是:

if(is_callable($sayHelloFunction)) { 
       $sayHelloFunction("Hello John"); 
    } 

你也不能關閉使用公共接入類型。

$sayHelloFunction = function sayHello($aName) { 
    echo($aName); 
}