PHP 함수 매개변수를 전달하는 방법에는 두 가지가 있습니다. 복사 전달: 기본 메커니즘으로, 함수는 매개변수 값의 복사본을 수신하며 수정 사항은 원래 변수에 영향을 주지 않습니다. 참조 패스: 함수는 원래 변수에 대한 참조를 수신하고 수정 사항은 원래 변수에 직접적인 영향을 미칩니다.
PHP 함수 매개변수 전달 메커니즘
PHP에서는 매개변수를 함수에 전달할 때 두 가지 전송 메커니즘이 있습니다.
Copy Pass
함수 매개변수는 기본적으로 값 전달 메커니즘을 채택합니다. 즉, 매개변수 값의 복사본이 함수 내부에 생성됩니다. 복사본에 대한 수정 사항은 함수 범위 내의 변수에만 영향을 미치며 함수 외부의 원래 변수에는 영향을 미치지 않습니다.
function add($a, $b) { $a = $a + $b; // 只修改函数内部的 $a 副本 } $x = 1; $y = 2; add($x, $y); // 传值到函数 echo $x; // 仍为 1,未受函数内更改的影响
Reference Pass
매개변수 앞에 &
기호를 추가하면 참조 패스 메커니즘을 구현할 수 있습니다. 이러한 방식으로 함수의 내부 작업은 더 이상 값의 복사본이 아니라 원래 변수를 직접 수정합니다.
function add_ref(&$a, &$b) { $a = $a + $b; // 直接修改原变量 } $x = 1; $y = 2; add_ref($x, $y); // 传引用到函数 echo $x; // 现在为 3,因函数内修改了原变量
실용 사례:
일반적인 예는 테이블 데이터의 페이징 기능입니다. 현재 페이지 번호, 페이지당 레코드 수 등의 매개변수를 페이징 함수에 전달해야 합니다. 값 전달 메커니즘을 사용하는 경우 페이징 기능은 매개변수 복사본에서만 작동할 수 있으며 데이터베이스 쿼리 문의 오프셋 및 제한 사항과 같은 설정을 수정할 수 없습니다. 따라서 이 경우 페이징 기능이 원래 매개변수를 수정할 수 있는지 확인하기 위해 참조별 전달 메커니즘을 사용해야 합니다.
아아아아위 내용은 PHP 함수 매개변수는 어떻게 전달되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!