Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

참조에 의한 PHP 반환

<시간/>

소개

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