Вызов статического метода из переменной массива объекта
В 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;
Есть идеи как обойти это?