2010-02-20 6 views
3

은 무엇합니까 brakets 말은 어디에서 더

return $container->{$resource}; 
+1

PHP 코드를 할 때 하나의 평가되지 않습니다으로, Safraz '초기 대답을 무시하십시오 인용 부호. 그러나 이것은 * 평가 될 것이다 :'echo "{$ container-> $ resource}";'. 그것은'$ container' 객체의 속성으로 평가 될 것입니다. 속성 이름은'$ resource'의 값입니다. 귀하의 예를 들어, 큰 따옴표로 묶을 때 예상 결과를 제공하지 않습니다. 자세한 내용은 Yada의 답변을 참조하십시오. http://stackoverflow.com/questions/2302531/what-does-return-container-resource-mean/2302545#2302545 –

답변

3

두 가능성을 읽을 의미 :

  1. variable variable합니다.

    $ resource = "score"; // 동적으로 이름을 설정하십시오.

    return $ container -> {$ resource}; // return $ container-> score와 동일;

  2. 오타/초보자 실수

입력 의미 프로그래머는 :

return $container->resource; // returns resource public member variable 
+0

오타가되지는 않습니다. 달러 기호와 대괄호 두 개를 "잘못 입력"하는 것은 어렵고주의를 기울이지 않을 것입니다. –

+1

참. {}는 타입을 잘못 입력하기는 어렵지만 프로그래머가 $ container -> $ resource를 반환하는 버그가 많이 있습니다. – Yada

4

브래킷은 가변 변수를 사용하게한다. 당신은 자세한 내용은 여기를 읽을 수 있습니다

// gets the value of the "resource" member from the container object 
$container->resource; 

// gets the value of the "foo" member from the container object 
$resource = 'foo'; 
$container->$resource; 

: 그것은 쉽게 구별 할 수 있습니다 http://php.net/manual/en/language.variables.variable.php