Вызов статического метода из переменной массива объектов

В PHP вы можете вызвать статический метод класса из экземпляра объекта (, который содержится в массиве )следующим образом:

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

Но по какой-то причине, когда я использую переменную $this, я получаю ошибку синтаксического анализа. Например:

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

Просто чтобы проиллюстрировать, что я имею в виду:

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;

Любые идеи о том, как обойти это?

15
задан Mark 17 July 2012 в 09:05
поделиться