2012-11-28 3 views
0

PHP (예 : CakePHP 모델)에 자식 개체가있는 개체가 있습니다 (예 : $this->Model1->Model2의 구조.PHP에서 변수 참조로 객체의 하위 객체를 선택하는 방법은 무엇입니까?

위의 구문은 객체를 참조하는 올바른 방법이지만 다른 프로세스를 통해 Model2의 이름을 얻은 경우 문자열 변수가됩니다. 어떻게 참조 할 수는이 변수를 사용하여 유사한 다음에 :

이제
$model_name = 'Model2'; 
$this->Model1[ $model_name ]->run_function(); 

명확하게 작동하지 않는 객체/클래스를 선택하는이 배열 스타일,하지만 내가 사용한다 유사한 방법이있다? 또는이 문제가 모두 발생하지 않는 더 나은 코딩 방법이 있습니까?

답변

2

이걸 찾으십니까?

$property = 'myProperty'; 
$object->{$property}; 
+1

를 정확히 맞아 그! 고맙습니다. 나는 비슷한 표기법을 본적이 없습니다. 너는 너무 빨랐다. 나는 너에게 아직 잘못을 표시 할 수도 없다. 나는 이것이 실제로 단순하지 않다는 것을 실제로 깨닫지 못했다. 테스트 중에는 꼭 필요한 것으로 보이지 않을 때 중괄호의 관련성이 무엇인가. – Rhys

+0

당신은 환영합니다 :) – cem

1

그냥 같이 수행

$this->Model1->$model_name->run_function(); 
관련 문제