>백엔드 개발 >PHP 튜토리얼 >PHP 함수 호출에서 값별 전달 및 참조별 전달 이해하기

PHP 함수 호출에서 값별 전달 및 참조별 전달 이해하기

WBOY
WBOY원래의
2024-04-16 14:39:011110검색

PHP의 함수 호출은 값이나 참조로 전달될 수 있습니다. 기본값은 값으로 전달하는 것이며, 함수는 매개변수의 복사본을 수신하며, 이를 수정해도 원래 값에는 영향을 미치지 않습니다. 참조에 의한 전달은 매개변수 앞에 & 기호를 추가하여 선언되며, 함수는 전달된 변수를 직접 수정합니다. 참조로 전달하는 것은 배열 요소와 같은 외부 변수를 수정하는 함수가 필요할 때 유용합니다.

揭秘 PHP 函数调用中的值传递和引用传递

PHP 함수 호출에서 값별 전달 및 참조별 전달

값별 전달

PHP에서 함수 호출은 기본적으로 값별 전달을 사용합니다. 즉, 값이 함수에 인수로 전달되면 함수는 값의 복사본을 얻습니다. 이 복사본에 대한 변경 사항은 원래 값에 영향을 미치지 않습니다.

function addValue($number) {
  $number += 10;
}

$value = 10;
addValue($value);
echo $value; // 输出:10

위의 예에서 볼 수 있듯이 $valueaddValue 함수에 전달되면 함수는 변수의 복사본을 가져옵니다. 함수 내의 수정 사항은 원본 변수가 아닌 복사본에만 영향을 미칩니다. $value 传递给 addValue 函数时,函数获取该变量的副本。函数内的修改只影响该副本,不会影响原始变量。

引用传递

有时,我们需要函数直接修改原始变量。这时,可以使用引用传递。要声明引用,请在参数类型声明前添加一个 & 符号。

function addReference(&$number) {
  $number += 10;
}

$value = 10;
addReference($value);
echo $value; // 输出:20

如上例所示,addReference 函数的 $number 参数声明为引用。这意味着函数将直接修改传递的变量。

实战案例

使用引用传递可以简化某些任务。例如,我们有一个包含用户数据的数组,并且需要在函数中对其进行修改。

$users = [
  [
    'id' => 1,
    'name' => 'John Doe',
  ],
];

function changeName(&$user, $newName) {
  $user['name'] = $newName;
}

changeName($users[0], 'Jane Doe');
echo $users[0]['name']; // 输出:Jane Doe

通过将 $user 参数声明为引用,changeName

참조로 전달

때때로 원본 변수를 직접 수정하는 기능이 필요할 때가 있습니다. 이 경우 참조로 전달을 사용할 수 있습니다. 참조를 선언하려면 매개변수 유형 선언 앞에 & 기호를 추가하세요.

rrreee

위 예시와 같이 addReference 함수의 $number 매개변수가 참조로 선언되었습니다. 이는 함수가 전달된 변수를 직접 수정한다는 것을 의미합니다. 🎜🎜실용적인 예🎜🎜참조로 전달을 사용하면 특정 작업을 단순화할 수 있습니다. 예를 들어, 사용자 데이터가 포함된 배열이 있고 함수에서 이를 수정해야 합니다. 🎜rrreee🎜$user 매개변수를 참조로 선언하면 changeName 함수가 배열의 원래 요소를 직접 수정할 수 있습니다. 🎜🎜결론🎜🎜PHP의 값별 전달과 참조별 전달을 이해하는 것은 효율적이고 유지 관리 가능한 코드를 작성하는 데 중요합니다. 참조별 전달을 사용하면 불필요한 변수 복사를 방지하고 함수 외부에서 변수를 직접 수정할 수 있습니다. 🎜

위 내용은 PHP 함수 호출에서 값별 전달 및 참조별 전달 이해하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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