そのようなことをするのは不可能に見えます:
class Service
{
public function get($argument1, $argument2)
{
echo "Arguments: $argument1, $argument2.";
}
}
class Main
{
public function __callStatic($method, $arguments)
{
$method = "get".ucfirst($method);
$arguments = implode(", ", $arguments);
$object = self::$method;
return $object->get($arguments);
}
public static function getService()
{
return new Service;
}
}
$main = new Main;
$main::Service("1", "2"); // Should output 'Arguments: 1, 2.'
問題は自己混乱のすべてであり、これで可能になります。
self::$variable を使用します。self は Main コンテキストに変数を持っています。
$object = self も機能しません。
$object = clone self も機能しません。
define("メソッド", $メソッド); self::method は機能しません。これは、self がクラス定数プロパティであると考えるためです。
これは使えません。
これを実行する方法はありますか?