0
다음은 인스턴스가 생성 된 문자열을 사용하여 문자열이 전달되는 메서드입니다. 예 방법 : 내가 수동으로 클래스 이름을 작성하거나 수동으로 공간이 방법 $actionType = __namespace__ . "\\$actionType";
을 추가하지만클래스 이름을 문자열로 전달하려고 할 때, 네임 스페이스 문제
public function action($actionType)
{
//var_dump(new $actionType);
if (!class_exists($actionType)) {
//throw new Exception
}
if (!(new $actionType) instanceof ActionInterface) {
////throw new Exception
}
$actionType = new $actionType;
echo $actionType->doAction();
}
하지만 발견되지 클래스의 오류를 얻고있다가, 다음 오류가 간다. 왜 그런 일이 일어나는거야?
에 한번 새로운 $의 actionType를 대체 할; 새로운 $ actionType(); – stweb
@stweb은 괄호없이 클래스의 인스턴스를 생성하지 않고 생성자에 매개 변수를 전달하지 않습니다. – feareoc
또한 두 인스턴스를 생성하지 않으려면 if 문 사이에'$ actionType = new $ actionType; '을 넣겠습니다. 마지막 if 문에서 다음을 수행합니다. if (! $ actionType instanceof ActionInterface) {}' – feareoc