programing

앰퍼샌드를 사용하여 PHP 함수를 시작하는 것은 무엇을 의미합니까?

randomtip 2022. 12. 31. 18:06
반응형

앰퍼샌드를 사용하여 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에서 참조는 변수의 내용에 할당된 다른 이름입니다.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.

언급URL : https://stackoverflow.com/questions/1676897/what-does-it-mean-to-start-a-php-function-with-an-ampersand

반응형