2016-03-31 75 views
0

我想分配給一個方法中的變量,另一個方法(作爲函數)。OOP:分配給變量的方法

所以也許在方法「A」我想分配方法「B」的功能。

我試過了,但var_dump爲false,參數$ fn被視爲字符串(我認爲)。

<?php 
class MyClass { 

    public function call($fn) { 
     var_dump(is_callable($this->$fn)); 
    } 

    public function required($str) { 
     return empty($str); 
    } 

} 

$class = new MyClass; 
$class->call('required'); 
+0

我建議爲您想要存儲爲變量的方法或方法組創建一個單獨的類。然後,只需將該類安裝到變量中即可。更整潔,更容易。 – Juakali92

回答

1

可能是要對這個更好的方法,但我認爲這是那種你追求的:

class MyClass 
{ 
    public function call($function, $parameters = null) 
    { 
     if (method_exists(__CLASS__, $function)) { 
      return $this->{$function}($parameters); 
     } 
    } 

    public function required($string) 
    { 
     return empty($string); 
    } 
} 

$class = new MyClass; 
var_dump($class->call('required', 'yo')); 

不完全使用你爲什麼要做到這一點,和我想象中有可能是實現最終目標的更好方法,但上述內容至少應滿足您的要求。它限制了它如何處理參數,但它是一個起點。

+0

很好,解決了這個。 – Grork