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 중국어 웹사이트의 기타 관련 기사를 참조하세요!