Chamando o método estático da variável de matriz de objetos
No PHP você pode chamar o método estático de uma classe a partir de uma instância de objeto (que está contida em um array) assim:
$myArray['instanceOfMyClass']::staticMethod(); // works
Mas por algum motivo quando eu uso o$this
variável, eu recebo um erro de análise. Por exemplo:
$this->myArray['instanceOfMyClass']::staticMethod(); // PARSING ERROR
Apenas para ilustrar o que quero dizer:
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;
Alguma idéia de como contornar isso?