PHP는 웹 개발에 널리 사용되는 서버 측 스크립팅 언어입니다. PHP에는 매개 변수를 전달하는 두 가지 방법이 있습니다 : 값별로 값과 참조. 이 기사는 PHP의 가치 전송 메커니즘에 중점을두고 독자가 특정 코드 예제를 통해이 개념을 마스터하도록 도와줍니다.
값 전달은 함수의 외부 매개 변수의 사본을 함수 내의 변수로 전달하는 것을 의미하므로 함수 내부의 매개 변수를 수정하면 외부 변수에 영향을 미치지 않습니다. 값 통과는 종종 기본 데이터 유형 (예 : 정수, 부동 번호, 문자열 등)에 사용됩니다. 간단한 예는 다음과 같습니다.
<?php
function addNumber($num) {
$num = $num + 10;
return $num;
}
$number = 5;
$newNumber = addNumber($number);
echo "원래 가치:" . $number . "<br>"; // 산출 5
echo "수정 된 값:" . $newNumber; // 산출 15
?>
위의 코드 예제에서 함수 AddNumber는 매개 변수 $ num을 수신하고 추가 된 후 값을 반환합니다. 그러나 외부 변수 $ 번호의 값은 함수의 내부 수정에 의해 영향을받지 않습니다.
배열과 객체는 일반적으로 PHP의 참조로 전달되지만 여전히 통과 할 때 통과하는 가치의 메커니즘을 따르며 특정 동작은 우리가 예상 한 것과 다를 수 있습니다. 다음은 객체 값 통과의 예입니다.
<?php
class Person {
public $name;
}
function changeName($obj) {
$obj->name = 'Lucy';
}
$person = new Person();
$person->name = 'John';
changeName($person);
echo "원래 이름:" . $person->name . "<br>"; // 산출 John
echo "수정 된 이름:" . $person->name; // 산출 Lucy
?>
이 예에서는 객체 $ person이 함수 ChangeName으로 전달되면 함수가 내부적으로 속성 값을 변경하지만 값 전달의 특성으로 인해 수정은 내부적으로 기능으로 제한됩니다.
배열의 경우 유사한 상황이 적용됩니다. 배열 값을 전달하는 예는 다음과 같습니다.
<?php
function changeElement($arr) {
$arr[0] = 100;
}
$array = [1, 2, 3];
changeElement($array);
echo "원래 배열:";
print_r($array); // 산출 [1, 2, 3]
?>
위에서 볼 수 있듯이 배열 요소가 수정되지만 외부 어레이의 값은 영향을받지 않습니다.
이 기사를 통해 PHP의 가치 전송 메커니즘에 대한 더 깊은 이해가 있습니다. 기본 데이터 유형의 경우 PHP는 값의 사본을 전달하는 반면 복합 데이터 유형 (예 : 배열 및 객체)의 경우 통과시 참조 패스처럼 작동하더라도 값은 실제 작동 상태로 유지됩니다. 따라서 개발자는 프로그램의 정확성을 보장하기 위해 코드를 작성할 때 다른 요구에 따라 적절한 매개 변수 전달 방법을 선택해야합니다.