>  기사  >  백엔드 개발  >  PHP에서 참조 유형을 반환하는 메서드의 코드 예

PHP에서 참조 유형을 반환하는 메서드의 코드 예

怪我咯
怪我咯원래의
2017-07-14 14:36:341240검색

php의 참조(즉, 변수, 함수, 객체 등 앞에 앰퍼샌드를 추가하는 것) //가장 중요한 것은 참조된 변수만 삭제하는 것입니다.

이 글에서는 주로 PHP에서

referencetype을 반환하는 방법을 소개합니다.

<?php
 
$color = &#39;YellowGreen&#39;;
 
function &getRef() {
    global $color;
    return $color;
}
 
function getCopy() {
    global $color;
    return $color;
}
 
$colorRef = &getRef();
$colorRef = &#39;Blue&#39;;
 
//$colorCopy = getCopy();
//$colorCopy = &#39;Black&#39;;
 
 
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.