2011-02-10 33 views
1
class Car 
{ 
    $gas= new Gas(); 
    $gas->fill('filledHandler'); 

    function filledHandler() 
    { 
     echo 'Gas has been filled!'; 
    } 
} 

class Gas 
{ 
    function fill($function) 
    { 
     // do something here 
     $function(); 
    } 
} 

我需要調用$調用類的函數。現在,它正在尋找一個全球功能執行調用類的方法

回答

4

你必須傳遞調用實例。

class Car 
{ 
    function fillGas() 
    { 
     $gas = new Gas(); 
     $gas->fill($this, 'filledHandler'); 
    } 

    function filledHandler() 
    { 
     echo 'Gas has been filled!'; 
    } 
} 

class Gas 
{ 
    function fill($obj, $function) 
    { 
     // If you need the class name, use get_class($obj) 
     $obj->$function(); 
    } 
} 
+0

GRRRR ....我浪費在這件事上半小時,尋找方法來找到哪個班級正在調用該方法。我正在尋找所有錯誤的地方。謝謝BC! – HyderA 2011-02-10 08:55:48

0
class Car 
{ 
    function __construct() 
    { 
     $gas= new Gas(); 
     $gas->fill($this, 'filledHandler'); 
    } 

    function filledHandler() 
    { 
     echo 'Gas has been filled!'; 
    } 
} 

class Gas 
{ 
    function fill($object, $function) 
    { 
     $object->$function(); 
    } 
} 

(問更多的問題(比如究竟你無論如何要發生的),並獲得更多的答覆文件^^)