소개
PHP에서는 참조를 반환하도록 함수를 만들 수도 있습니다. 이것은 참조가 바인딩되어야 하는 변수를 찾는 데 유용합니다. 참조를 반환하는 함수를 정의하려면 이름 앞에 &를 붙입니다. 서명.
예시
다음 예에서 myfunction()은 참조로 반환하도록 정의됩니다. 여기에는 참조가 반환되고 전역 변수에 할당되는 정적 변수가 포함됩니다. 로컬 정적 변수의 값도 참조 외부에 다른 값이 할당되어 변경됩니다.
예시
<?php function &myfunction(){ static $x=10; echo "x Inside function: ",$x,"\n"; return $x; } $a=&myfunction(); //contains reference to 4x in function echo "returned by reference: ", $a, "\n"; $a=$a+10; //increments variable inside function too $a=&myfunction(); ?>
출력
이 예는 다음과 같은 출력을 제공합니다.
x Inside function: 10 returned by reference: 10 x Inside function: 20
참조를 반환하는 메서드
클래스에는 참조를 반환할 수 있는 메서드도 있을 수 있습니다. 이렇게 하면 클래스 외부에서 개인 인스턴스 변수의 값을 변경할 수 있습니다.
예시
<?php class myclass{ private $val; function __construct($x){ $this->val=$x; } function &getbyref(){ return $this->val; } function getbyval(){ return $this->val; } } $a=new myclass(10); $b=&$a->getbyref(); $b=100; echo "Value of private property: ", $a->getbyval(); ?>
출력
위 스크립트의 결과는 다음과 같습니다.
Value of private property: 100