2012-11-13 117 views
0

我試圖通過參數傳遞靜態函數作爲回調,因爲我使用舊版本的PHP,我不能使用匿名函數,因爲它在原始代碼中完成https://github.com/bobthecow/mustache.php/wiki ,在「使用所有這些選項」部分。用參數調用靜態函數作爲回調

class SampleClass { 

    function __construct() { 

    } 

    static function generateHTML($markup, $data) { 
     require_once('lib/Mustache/Autoloader.php'); 

     Mustache_Autoloader::register(); 

     $mengine = new Mustache_Engine(array(
      'escape' => /* Here I need to pass escapeMustache function */ 
     )); 

     $renderer = new TempRenderer($data, false); 
     echo $mengine->render($markup, $renderer); 
    } 
    static function escapeMustache($value) { 
     return $value; 
    } 

} 

什麼是傳遞自定義轉義函數的最佳方式?

謝謝。

+1

假設回調預計將有一個參數作爲您已定義它,通過對象上下文和功能南作爲數組:'Mustache_Engine(陣列(「逃離」 => array('SampleClass','escapeMustache'))' –

+0

您可以使用[變量函數](http://www.php.net/manual/en/functions.variable-functions.php)嗎? – Carsten

+0

@MichaelBerkowski謝謝非常多,它的工作原理我覺得現在非常愚蠢,因爲我第一次嘗試這個方法,但是卻犯了一個小的語法錯誤 – Marvin3

回答

2

由於@MichaelBerkowski

Mustache_Engine(array('escape' => array('SampleClass','escapeMustache'))