2011-02-10 28 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(); 
    } 
} 

呼び出すクラスの$ 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

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(); 
    } 
} 

(あなたがとにかく起こるたいです正確に何のように(より多くの質問をする)と、より多くの回答テキスト^^を得る。)

関連する問題