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

PHP에서 참조로 전달 및 값으로 전달이란 무엇입니까?


이 기사에서는 PHP에서 값에 의한 전달과 참조에 의한 전달에 대해 배웁니다.

이제 이 두 가지 개념에 대해 자세히 알아보겠습니다.

PHP에서는 일반적으로 값에 의한 전달 방식을 사용하여 인수를 함수에 전달했습니다. 함수 내에서 인수의 값이 변경되더라도 함수 외부에서 변경되지 않기 때문에 우리는 이 관행을 따르고 있습니다.

어떤 경우에는 함수 인수를 수정해야 할 수도 있습니다. 따라서 함수가 인수를 수정할 수 있도록 하려면 참조로 전달해야 합니다.

참조로 전달(passed by reference)부터 시작하겠습니다. 이미 언급했듯이 함수를 참조하여 변수를 전달할 수 있으므로 함수가 변수를 수정할 수 있습니다. 참조로 전달된 매개변수를 전달하는 프로세스를 시작하려면 함수 정의에서 인수 이름 앞에 앰퍼샌드(&)를 추가합니다.

예시

간단한 예를 들어 이를 테스트해 보겠습니다.

<?php
   function calculate(&$a){
      $a++;
   }
   $a=5;
   calculate($a);
   echo $a;
?>

출력

6

설명

여기에서 변수 $a를 선언하고 이 변수를 계산() 함수에 대한 참조로 전달합니다. 따라서 원칙에 따르면 $a 값이 함수 내부에서 변경되면 함수 외부에서도 변경됩니다.

참고

함수 호출에는 참조 부호가 없으며 함수 정의에만 있습니다. 함수 정의만으로도 참조로 인수를 올바르게 전달하기에 충분합니다. 계산(&$a); 오류가 발생합니다.

예시

값에 의한 전달을 이해하기 위해 예제를 테스트해 보겠습니다.

<?php
   function calculate($a){
      $a++;
   echo $a."<br/>";
   }
   $a=5;
   calculate($a);
   echo $a;
?>

출력

6
5

설명

여기에서 값을 값으로 전달하는 방식으로 계산() 함수에 값을 전달했습니다. 그 값은 함수 내부에서 변경되지만 함수 외부에는 반영되지 않습니다. 변수 값은 함수 외부에서 동일하게 유지됩니다.