PHP 함수는 변수 참조를 어떻게 처리합니까?

WBOY
풀어 주다: 2024-04-11 08:15:01
원래의
786명이 탐색했습니다.

PHP 함수의 변수 전달 방법: 값 전달: 함수는 변수 값의 복사본을 받으며, 복사본을 수정해도 원래 변수에는 영향을 미치지 않습니다. 참조에 의한 전달: & 기호를 사용하여 참조에 의한 전달이 가능하며 함수는 원래 변수의 값을 직접 수정할 수 있습니다.

PHP 函数如何处理变量引用?

PHP 함수 및 변수 참조

PHP에서는 변수를 함수 매개변수로 전달할 때 변수 참조를 처리하는 방법을 알아야 합니다. 변수 참조는 값에 의한 전달과 참조에 의한 전달의 두 가지 유형으로 나뉩니다.

값으로 전달

기본적으로 PHP는 값으로 전달을 사용합니다. 이는 함수가 변수 값의 복사본을 수신한다는 의미입니다. 이 복사본을 수정해도 원래 변수 값에는 영향을 미치지 않습니다.

function test1($a) {
  $a += 10;  // 修改副本的值
}

$a = 10;
test1($a);
echo $a;  // 输出 10,原始值不受影响
로그인 후 복사

참조에 의한 전달

참조에 의한 전달은 & 표기법을 사용하여 변수 참조를 전달함으로써 달성될 수 있습니다. 이렇게 하면 함수가 원래 변수의 값을 직접 수정할 수 있습니다.

function test2(&$a) {
  $a += 10;  // 修改原始变量的值
}

$a = 10;
test2($a);
echo $a;  // 输出 20,原始值被修改
로그인 후 복사

실제 예

두 변수의 값을 바꾸는 함수 swap()를 생각해 보세요:

function swapByValue($a, $b) {
  // 值传递,交换副本的值
  $temp = $a;
  $a = $b;
  $b = $temp;
}

function swapByReference(&$a, &$b) {
  // 引用传递,直接交换原始变量的值
  list($a, $b) = [$b, $a];
}

$x = 10;
$y = 20;

swapByValue($x, $y);
echo "x = $x, y = $y\n";  // x = 10, y = 20

swapByReference($x, $y);
echo "x = $x, y = $y\n";  // x = 20, y = 10
로그인 후 복사

첫 번째 예에서는 복사본의 값을 수정해도 아무런 효과가 없기 때문에 값 전달을 사용하여 바꾸는 것이 작동하지 않습니다. 변하기 쉬운. 두 번째 예에서는 참조 전달을 사용하여 교환을 구현함으로써 원래 변수의 값을 성공적으로 수정했습니다.

위 내용은 PHP 함수는 변수 참조를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!