PHP에는 함수의 매개 변수를 전달하는 두 가지 방법이 있습니다 : 값 통과 및 참조 통과. 두 가지 접근 방식 사이에는 근본적인 차이가 있으며, 개발자가 효율적이고 안정적인 코드를 작성하는 데 차이를 이해하는 것이 중요합니다.
값 전달은 함수를 호출 할 때 매개 변수의 사본이 전달된다는 것을 의미합니다. 함수 내부의 복제본에 대한 수정은 원래 변수에 영향을 미치지 않습니다. 값 통과는 기능이 매개 변수 데이터 만 읽어야하는 상황에 적합합니다.
function changeValue($num) {
$num = 10;
}
$num = 5;
changeValue($num);
echo $num; // 산출 5
위에서 볼 수 있듯이 함수 changevalue는 변수를 가져 와서 10으로 변경하지만 함수 외부에서 원래 $ num 값은 5로 유지됩니다.
값 통과와 달리 참조 통과는 변수 자체에 대한 참조를 전달합니다. 이는 함수 내에서 매개 변수를 수정할 때 원래 변수의 값이 직접 영향을 받음을 의미합니다.
function changeValueByReference(&$num) {
$num = 10;
}
$num = 5;
changeValueByReference($num);
echo $num; // 산출 10
이 예에서는 함수 changevalueBalueByreference가 전달 된 $ num 변수를 수정하여 원래 변수의 값이 10이됩니다.
실제 개발에서 특히 양식 처리 중에 PHP의 가치 전송 및 기준 전송이 널리 사용됩니다. 값 패스는 종종 양식 데이터를 얻는 데 사용되는 반면, 참조 패스는 종종 양식 데이터를 수정하는 데 사용됩니다.
<form action="process_form.php" method="post">
<input type="text" name="name">
<input type="submit">
</form>
// process_form.php
function processForm(&$name) {
// 개정하다$name
$name = strtoupper($name);
}
$name = $_POST['name'];
processForm($name);
echo $name; // 산출大写后的用户名
위에서 볼 수 있듯이 양식을 제출할 때 참조 패스를 사용하여 $ 이름 매개 변수를 수정하여 제출 된 데이터를 자본으로 변환하는 것과 같이 제출 된 데이터를 처리하는 데 도움이 될 수 있습니다.
이 기사에서는 PHP 기능 매개 변수 전송의 기본 지식을 소개합니다. 이러한 차이를 이해하면 개발자가 실제 개발에서보다 유연하고 효율적으로 데이터를 처리하는 데 도움이 될 수 있습니다.