문자열 표현으로 클래스 인스턴스를 "호출"할 수 있습니까? 내가 코드는 다음과 같이 기대이 경우PHP에서 클래스 인스턴스를 "호출"하는 방법은 무엇입니까?
:
내가 PHP의 SoapClient는 PHP 클래스에 WSDL 요소를 매핑하는 데 사용되는 classMappings의 목록을 허용으로 이것이 가능해야한다 생각class MyClass {
public $attribute;
}
$obj = getInstanceOf("MyClass"); //$obj is now an instance of MyClass
$obj->attribute = "Hello World";
. 하지만 SoapClient가 클래스 인스턴스를 "호출하는"방법은 무엇입니까?
$class = new ReflectionClass('MyClass');
$args = array('foo', 'bar');
$instance = $class->newInstanceArgs($args);
이 있습니다 : (call_user_func_array
의 종류) 클래스 '생성자는 가변 수의 인수를 받아, 당신은 배열에있는 그 인수를 보유하는 경우
아하 탱크. :-D 질문이 하나 더 있습니다. 클래스가 실제로 존재하는지 테스트하는 방법이 있습니까? 설명 : (classExists ("MyClass")) { $ obj = getInstanceOf ("MyClass"); } – NovumCoder
'class_exists()'가 있습니다 : http://www.php.net/manual/en/function.class-exists.php. 두 번째 논의를 지켜보십시오. –
감사합니다. ReflectionClass는 완벽한 솔루션입니다. 글쎄, 이것이 리플렉션이라고 불리는 것을 잊지 않습니다. :-) – NovumCoder