2011-09-19 5 views
0

나는 {}의 의미 문자열은 무엇입니까?

$name = 'user'; 

$run->{$name}; 

문자열

을하고 난 결과 통지가 : 나는 컨트롤러 방법 사용자에이

Undefined property: run::$user 

을하지만, 오류가 난 문자열 중앙의 $의 문자를 참조하십시오.

이것은 특수 문자입니까?

답변

3

obj->{$foo}$foo의 문자열이 'bar' 인 경우 obj->bar과 같습니다.

자세한 내용은 http://php.net/manual/en/language.variables.variable.php을 참조하십시오. obj->bar 만약

실제로 방법, 당신은 ... obj->bar()로하여 object->{$foo}()

그리고 그것을 호출해야한다 - 괄호를 확인합니다. 당신이 $run->user을 쓴 것처럼

0

$run->{$name} 당신이 다음 $name = 'user';

$run->{$name}이 이름을 가진 속성을 얻기 위해 노력할 것입니다 그렇다면 변수

의 값을 사용하여 객체의 속성에 액세스 할 때 사용된다 '사용자 '

0
$name = "user"; 
$run->{$name}(); 

user() 메소드를 실행하려면; 당신이 컨트롤러 (당신이 $run에서 캡처 한있는 인스턴스)의 방법이있는 경우

0

당신은 사용할 수 있습니다

$run->$name(); 
0

variable variables를 참조하십시오 중괄호가 필요한 문자열의 일부가 될 때 변수 이름과 PHP가 잘못 해석합니다. 다른 모든 경우에는 선택 사항이며 가독성을 높이기 위해 배치됩니다 (표현식에 중괄호를 사용하는 것과 같은 방식). 당신이 속성이 아니라 메서드를 참조하기 때문에()를 사용해야합니다. 가변 변수를 사용하지 않아도 마찬가지입니다.

$foo->user // access to property 
$foo->user() // method call