멤버 변수에 대한 PHP 중괄호 구문
SO에 대한 첫 번째 질문이며 실제 RTM 후보입니다. 그러나 나는 내가 그것을 그것을 약속합니다. 내가 놓친 단순한 일로 밝혀지면 기꺼이 #headpalm을 할 것입니다.
Zend Framework를 알아 내려고 시도하고 다음 구문을 발견했습니다.
$this->_session->{'user_id'}
멤버 변수로 보이는 항목에 액세스하는 데 사용되는 중괄호 구문을 본 적이 없습니다. 어떻게 다른가요?
$this->_session->user_id
나는 _session이 말할 수 있습니다.
중괄호는 복합 변수 이름 user_id를 래핑하려고 시도하는 정리 규칙입니까? 아니면 특별한 접근 자인가요?
내가 R을 할 수 있도록 TFM에 대한 모든 포인터는 겸손하게 감사하겠습니다.
감사합니다. 부드러워주세요.
중괄호는 변수 이름의 끝을 명시 적으로 지정하는 데 사용됩니다. 예를 들면 :
echo "This square is {$square->width}00 centimeters broad.";
따라서 귀하의 사례는 두 가지 특수 사례의 조합입니다. 중괄호 등을 사용하여 클래스 변수에 액세스 할 수 있습니다.
$class->{'variable_name'} // Same as $class->variable_name
$class->{'variable' . '_name'} // Dynamic values are also allowed
그리고 귀하의 경우에는 중괄호 구문으로 사용하고 있습니다.
PHP 매뉴얼 "복잡한 (곱슬) 구문"을 참조하십시오 .
변수 변수를 사용할 때 구문을 알고 있습니다 .
$userProp = 'id';
$this->_session->{'user_'.$userProp};
이 구문의 큰 장점은 일반적으로 많은 영역에 있고 아마도 피하고 싶을 것입니다.
언어는 허용되지 않는 변수 이름에 문자를 사용할 수 있습니다.
즉 :
$this->object->{"hello world\0\n"}
$this->object->{"function(){ this is a truely awful name for a variable }"}
질문의 두 가지 예는 동일한 작업을 수행합니다. PHP를 사용하면 여러 가지 방법으로 멤버 데이터 / 메소드에 액세스 할 수 있습니다.
object->{'name_of_member'};
object->name_of_member;
$member = 'name_of_member';
object->$member;
귀하가 제공하는 예에서는 실제 차이가 $this->_session->user_id
더 명확하기 때문에 IMO를 더 명확하게 합니다.
중괄호 구문이 유용한 방법 이름에 대한 유용한 구성하여 멤버 변수에 액세스하는 것 $this->_session->{'user_id' . $index}
입니다.
참고 URL : https://stackoverflow.com/questions/1147937/php-curly-brace-syntax-for-member-variable
'IT' 카테고리의 다른 글
인덱싱 된 열의 MongoDB 선택 횟수 (고유 x)-대용량 데이터 세트에 대한 고유 한 결과 계산 (0) | 2020.10.10 |
---|---|
flask-sqlalchemy 또는 sqlalchemy (0) | 2020.10.10 |
C # 또는 .NET의 어셈블리는 정확히 무엇입니까? (0) | 2020.10.10 |
내 Google Maps API 키를 보호해야합니까? (0) | 2020.10.10 |
템플릿 클래스 멤버 함수의 명시 적 전문화 (0) | 2020.10.10 |