2010-07-19 2 views
-1

난의가, 다른 시간에 호출 다른 변수에 따라하는 것과 같은 기능을 가지고 여러 클래스,

그래서 내가해야 할 것은 무엇인가

$class = 'test'; 
$return = $class::do_something(); 

좋아하지만 난 구문 분석 오류가 있습니다 : 구문 분석 오류 , 예기치 않은 t_paamayim_nekudotayim.

외관상으로는 예기치 못한 것을 의미합니다.


업데이트 :
또한이 방법으로 직접 내 로컬 호스트에서 작동하지만 내 프록시 서버에서 작동하지 않는 이유는 무엇입니까? php_ini 설정이 있습니까?

답변

4

클래스 함수를 동적으로 호출하려면 call_user_func이라는 특수 함수를 사용해야합니다.

과 같이 : 매개 변수와 함수의

call_user_func($class . '::do_something'); 

, 당신은 call_user_func_array를 사용하는 것이 좋습니다 :

call_user_func_array($class . '::do_something', array($data)); 

, 변수에 정적 메서드를 호출 할 수있는 기능을 두 번째 질문에 대답하기 위해 classnames는 PHP 5.3.0에서만 추가 되었기 때문에 코드가 다른 서버에 오류를 던지면서 한 서버에서 작동합니다.

+0

잘 클래스는이 클래스 테스트처럼 { 공공 정적 기능 do_something ($ 뭔가) {} } 그래서 하나가 내가 사용하는 것입니다 무엇을 보인다? 건배 – Hailwood

+0

@Hailwood, 나는 나의 대답을 편집했다. –

+0

건배,이 답변을 가능한 빨리 수락 하겠지만, 내 질문에 대한 답변을 드릴 수 있습니까? – Hailwood