php의 참조(즉, 변수, 함수, 객체 등 앞에 앰퍼샌드를 추가하는 것) //가장 중요한 것은 참조된 변수만 삭제하는 것입니다.
이 글에서는 주로 PHP에서referencetype을 반환하는 방법을 소개합니다.
<?php $color = 'YellowGreen'; function &getRef() { global $color; return $color; } function getCopy() { global $color; return $color; } $colorRef = &getRef(); $colorRef = 'Blue'; //$colorCopy = getCopy(); //$colorCopy = 'Black'; var_dump($color); var_dump($colorRef); //var_dump($colorCopy);&getRef를 사용하면 거의 이해가 될 것입니다. ()는 $colorRef가 $color에 바인딩됩니다. 즉, 두 변수 $colorRef와 $color가 동일한 값을 가리킨다는 의미입니다. 값 중 하나를 변경하면 다른 값도 변경됩니다.
$color가 배열
인 경우에도 마찬가지입니다. 위 코드는 모든 PHP4/5 버전에서동일하게 작동합니다. $color가 Object일 때 문제가 발생합니다.
PHP4에서 getCopy는 여전히 복사된 객체를 반환합니다. &getRef()는 참조를 반환합니다. PHP5는 약간 다릅니다.
최신 PHP5.2는 PHP4와 동일하게 작동하며 getCopy()는 복사본을 반환하고 &getRef()는 참조를 반환합니다.그러나 PHP5의 일부 버전은 약간 다릅니다(예: getCopy() 및 &getRef()가 모두 참조임을 보여주는 PHP5.1.6).
여기서 getCopy() 및 &getRef()는 두 개의
전역 함수
입니다. 클래스에 배치되어 클래스의 멤버 함수가 된다면 이야기가 달라지게 됩니다...
PS: 참조를 반환해도 성능이 향상되지 않습니다. , 때로는 성능이 저하되므로 이 기능을 사용하여 프로그램을 "최적화"하는 것을 당연하게 여기지 마십시오.
위 내용은 PHP에서 참조 유형을 반환하는 메서드의 코드 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!