PHP에서 전달하는 함수 매개변수에는 형식적 매개변수 전달(C 언어와 같은 프로그래밍 언어에서 차용)이 있습니다.
즉, 함수의 매개변수에 변수 값을 할당하는 것은 함수 매개변수에 대해 수행되는 모든 작업이 원래 변수와 관련이 없습니다.
//php function testX( $b ) { return $b-=2; } $a = 5 ; $c = testX($a); print_r($a);//5 print_r($c);//3
그리고 주소 전송(참조 전송)은 변수의 주소를 함수의 매개변수에 부여하는 것입니다. 함수에서 매개변수에 대해 수행되는 모든 연산은 변수에 대한 연산과 동일합니다.
//php function testS( &$b ) { return $b-=2; } $a = 5 ; $c = testX($a); print_r($a);//3 print_r($c);//3
PHP에서는 함수 매개변수와 변수가 모두 메모리 공간을 확보하지만 일반 매개변수 전달은 매개변수에 값을 할당하는 반면 참조 전달은 변수의 주소
를 매개변수에 저장합니다. 매개변수 공간의 위치.
특히 주목할 점은 php5부터 참조 전달 작성 방법이 변경되었다는 점입니다. 위 코드와 같이 PHP 작성 방식을 다른 프로그래밍 언어와 동일하게 변경합니다. 정의할 때는 &를 사용해야 하고 호출할 때는 &를 사용할 필요가 없습니다. 이전 작성 방법과 많이 다릅니다.
//php以前的写法 function &testS( &$b ) { return $b-=2; } $c = &testS($a);
장점:
이러한 글쓰기 변화는 개인적으로 PHP 언어의 고유성을 줄이고 다른 프로그래밍 언어의 쓰기 방법에 더 가까워지는 것이라고 생각합니다. 어떤 의미에서는 다른 프로그래밍 언어에 익숙한 프로그래머가 PHP를 더 빨리 마스터할 수 있게 해줍니다. 코드 읽기 및 논리적 이해의 관점에서 볼 때 함수 내의 변수에 대해 수행되는 모든 작업을 완전히 무시합니다. 코드 추상화에 더 적합합니다.
단점:
개발의 최전선에 있는 프로그래머에게 이것은 미친 변화라고 생각합니다. 특히 2차 개발을 하는 사람들에게는 더욱 그렇습니다. 2차 개발자는 이전 개발자를 기반으로 개발해야 합니다. 함수를 볼 때 &로 참조 함수를 구별하는 데 익숙합니다. 이 작성 방법이 없으면 모든 함수가 동일합니다. 값 참조 함수에 대한 호출이 포함되면 프로그래머는 내부로 들어가야 합니다. 코드 세부정보를 확인하는 기능입니다. 특히 프로그램에 오류가 있는 경우에는 더욱 그렇습니다. 값별 참조 기능으로 변수에 적용된 모든 변경 사항을 자세히 이해해야 합니다. 그리고 참조 함수를 호출하기 위해 &를 취소한다는 것은 프로그램에서 호출한 모든 함수를 확인해야 한다는 것을 의미하며(어떤 함수가 참조 함수인지 모르기 때문에) 작업 부하를 상상할 수 있습니다!
전역변수(global)도 있습니다. 이는 매개변수를 정의하는 직접적이고 빠른 방법입니다. 함수에서 사용할 매개변수를 전역 변수로 설정합니다. 이런 방식으로 함수 내부의 작업은 변수 자체를 직접 사용합니다.
짧은 프로그램에서 사용해도 문제는 없지만, 외부 파일 호출 시 매개변수를 정의하는 이상적인 방법은 아닙니다!
위 내용은 PHP 함수에 매개변수를 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!