Aufruf der statischen Methode aus object-array variable

In PHP aufrufen Sie können eine Klasse statische Methode aus einem Objekt-Instanz (welche enthalten ist in einem array) wie folgt:

$myArray['instanceOfMyClass']::staticMethod(); //works

Aber aus irgendeinem Grund, wenn ich den $this variable, bekomme ich einen parsing-Fehler. E. g:

$this->myArray['instanceOfMyClass']::staticMethod(); //PARSING ERROR

Nur um zu verdeutlichen, was ich meine:

class MyClass{
    public static function staticMethod(){ echo "staticMethod called\n"; }
}

$myArray = array();
$myArray['instanceOfMyClass'] = new MyClass;
$myArray['instanceOfMyClass']::staticMethod(); //works

class RunCode
{
    private $myArray;

    public function __construct(){
        $this->myArray = array();
        $this->myArray['instanceOfMyClass'] = new MyClass;
        $this->myArray['instanceOfMyClass']::staticMethod(); //PARSING ERROR
    }
}

new RunCode;

Irgendwelche Ideen auf, wie man das umgehen kann?

  • static = self:: nicht $this->
  • Sorry? Ich glaube nicht, dass Sie das bekommen, was ich versuche zu tun. Ich versuche nur zum aufrufen einer statischen Methode über ein Objekt Instanz von MyClass, die einen Eintrag in der AusführenCode->myArray.
  • verwenden call_user_func(array($this->myArray['instanceOfMyClass'], 'staticMethod'));
InformationsquelleAutor Mark | 2012-07-17
Schreibe einen Kommentar