>  기사  >  백엔드 개발  >  PHP 함수 매개변수는 어떻게 전달되나요?

PHP 함수 매개변수는 어떻게 전달되나요?

WBOY
WBOY원래의
2024-04-10 09:36:01922검색

PHP 함수 매개변수를 전달하는 방법에는 두 가지가 있습니다. 복사 전달: 기본 메커니즘으로, 함수는 매개변수 값의 복사본을 수신하며 수정 사항은 원래 변수에 영향을 주지 않습니다. 참조 패스: 함수는 원래 변수에 대한 참조를 수신하고 수정 사항은 원래 변수에 직접적인 영향을 미칩니다.

PHP 函数参数是如何传递的

PHP 함수 매개변수 전달 메커니즘

PHP에서는 매개변수를 함수에 전달할 때 두 가지 전송 메커니즘이 있습니다.

  • Copy Pass: 함수는 매개변수 값을 받습니다. 복사, 복사본 수정 원래 변수에는 영향을 미치지 않습니다. 이는 PHP의 기본 매개변수 전달 메커니즘입니다.
  • Reference Pass: 함수는 원래 변수에 대한 참조를 수신하고 이를 수정하면 원래 변수에 영향을 미칩니다.

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.