2
일반적으로, 내가해야 할 것 :실행할 클래스를 지정하는 더 짧은 방법이 있습니까?
$str = "classname"; //classname is the name of a class
switch($str)
{
case "class1":
class1::run(); break;
case "class2":
class2::run(); break;
case "class3":
class3::run(); break;
case "class4":
class4::run(); break;
case "classname":
classname::run(); break;
default:
die("Fatal error: no such class");
}
//in my case, there are hundreds of cases and more being added
한 줄에 아마,이를 단순화하는 방법이 있나요? 희망찬 생각?
$str::run()
물론 $ str이 실제로 개체의 이름인지 확인하는 것은 필자의 책임입니다. 하지만 위와 같은 거대한리스트를 관리하는 것보다 관리가 훨씬 쉬울 것입니다.
이것이 가능합니까?
홀수, 그것은 나를 위해 작동하지 않습니다 http://ideone.com/9iLvP 어쩌면 ideone는 PHP의 오래된 버전을 사용을? – dukevin
버전에 따라 달라질 것 같습니다. PHP 5.3.8을 실행 중입니다. ideone은 5.2.12를 사용하는 것으로 보입니다. – icktoofay
예. PHP 5.3.0에서 추가 된 것처럼 보입니다 : [ "$ foo :: myFunc()'(Etienne Kneuss)를 사용하여 정적 멤버의 동적 액세스 지원 추가"] (http://www.php.net/ ChangeLog-5.php # 5.3.0) – icktoofay