앰퍼샌드로 PHP 기능을 시작한다는 것은 무엇을 의미합니까?
이 코드와 함께 Facebook 라이브러리를 사용하고 있습니다.
class FacebookRestClient {
...
public function &users_hasAppPermission($ext_perm, $uid=null) {
return $this->call_method('facebook.users.hasAppPermission',
array('ext_perm' => $ext_perm, 'uid' => $uid));
}
...
}
함수 정의의 시작 부분에서 &는 무엇을 의미하며 이와 같은 라이브러리를 사용하는 방법은 무엇입니까?
함수 이름 앞의 앰퍼샌드는 함수가 값 대신 변수에 대한 참조를 반환 함을 의미합니다.
참조로 반환은 함수를 사용하여 참조를 바인딩 할 변수를 찾으려고 할 때 유용합니다. 성능을 향상시키기 위해 참조 별 반환을 사용하지 마십시오. 엔진은이를 자동으로 최적화합니다. 유효한 기술적 이유가있는 경우에만 참조를 반환하십시오.
참조 반환을 참조 하십시오 .
이미 언급했듯이 참조를 반환합니다. PHP 4에서 객체는 다른 값과 마찬가지로 값으로 할당되었습니다. 이것은 직관적이지 않으며 대부분의 다른 언어가 작동하는 방식과 상반됩니다.
이 문제를 해결하기 위해 객체를 가리키는 변수에 참조가 사용되었습니다. PHP 5에서는 참조가 거의 사용되지 않습니다. 나는 이것이 PHP 4와의 호환성을 유지하려고 노력하는 레거시 코드 또는 코드라고 생각합니다.
이것은 종종 PHP에서 Returning reference 또는 Returning by reference 로 알려져 있습니다.
참조로 반환은 함수를 사용하여 참조를 바인딩 할 변수를 찾으려고 할 때 유용합니다. 성능을 향상시키기 위해 참조 별 반환을 사용하지 마십시오. 엔진은이를 자동으로 최적화합니다. 유효한 기술적 이유가있는 경우에만 참조를 반환하십시오.
참조 PHP에서 단순히 변수의 콘텐츠에 할당 된 다른 이름이다. PHP 참조는 C 프로그래밍에서 포인터와 같지 않으며 실제 메모리 주소가 아니므로 포인터 산술에 사용할 수 없습니다.
참조를 반환하는 개념은 특히 초보자에게 매우 혼란 스러울 수 있으므로 예제가 도움이 될 것입니다.
$populationCount = 120;
function &getPopulationCount() {
global $populationCount;
return $populationCount;
}
$countryPopulation =& getPopulationCount();
$countryPopulation++;
echo "\$populationCount = $populationCount\n"; // Output: $populationCount = 121
echo "\$countryPopulation = $countryPopulation\n"; //Output: $countryPopulation = 121
getPopulationCount()앞에 정의 된 함수 &는의 내용 또는 값에 대한 참조를 반환합니다 $populationCount. 따라서 증가 $countryPopulation는 또한 증가 $populationCount합니다.
'Programming' 카테고리의 다른 글
| 세션 선호도와 고정 세션의 차이점은 무엇입니까? (0) | 2020.07.10 |
|---|---|
| DefiningQuery는 있지만 InsertFunction 요소는 없습니다… (0) | 2020.07.10 |
| MyAssembly.XmlSerializers.dll은 (는) 무엇 이죠? (0) | 2020.07.10 |
| 10 억 숫자의 중앙값 계산 (0) | 2020.07.10 |
| 스칼라에서 '20 초 '는 어떻게 작동합니까? (0) | 2020.07.10 |