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;
これを回避する方法についてのアイデアはありますか?