>백엔드 개발 >PHP 튜토리얼 >PHP 참조로 전달

PHP 참조로 전달

WBOY
WBOY원래의
2024-08-29 12:48:07528검색

PHP 프로그래밍 언어 자체의 참조에 의한 전달이라는 단어는 변수가 참조에 의해 전달될 때마다 변수의 인수 바로 앞에 앰퍼샌드 기호(&)가 추가된다는 의미입니다. 이제 "function(&$x)"라는 샘플 예제를 살펴보겠습니다. 여기서 전역 변수와 함수 변수의 범위는 모두 동일한 참조 개념을 사용하여 정의되므로 전역 값이 됩니다. 따라서 전역 변수가 변경될 때마다 함수 내부에 있는 변수도 변경되고 그 반대의 경우도 마찬가지이며 이 모든 것에 적용 가능합니다.

광고 이 카테고리에서 인기 있는 강좌 PHP 개발자 - 전문 분야 | 8개 코스 시리즈 | 3가지 모의고사

무료 소프트웨어 개발 과정 시작

웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등

구문 및 매개변수

function function_name(&$function_parameter){
..
..
}

참조를 통한 PHP 전달 매개변수 설명:

  • Function_name: function_name 매개변수는 사용자가 정의한 함수의 이름일 뿐입니다. 귀하의 요구 사항과 작업에 따라 무엇이든 이름을 지정할 수 있습니다.
  • Function_parameter: PHP 프로그래밍 언어에서 참조로 전달에 사용되는 변수 매개변수입니다. 이 가변 매개변수는 무엇이든 될 수 있습니다. 또한 사용자 정의되며 코딩 요구 사항에 따라 이름을 지정할 수 있습니다. 단, 앰퍼샌드 기호(&)로 표현해야 합니다.

PHP에서 참조에 의한 전달은 어떻게 작동하나요?

PHP 프로그래밍 언어의 참조에 의한 전달은 기본적으로 변수 인수 바로 앞에 있는 앰퍼샌드 기호(&)를 사용하여 참조에 의한 변수/변수를 우회하는 방식으로 작동합니다. 참조 개념으로 변수를 전달하면 함수는 변수를 수정하는 기능을 가질 수 있습니다. 이러한 방식으로 PHP 참조 개념에 의한 전달이 작동하며 일부 코딩 사례에서 알아야 할 중요한 개념입니다. 일부 PHP 버전의 경우 참조 개념 전달이 제대로 작동하지 않습니다. PHP 5.3.0에서는 "참조에 의한 호출 시간 전달"이라는 경고가 표시되며, PHP 5.4.0 버전에서는 참조에 의한 호출 시간 전달이 제거되므로 이를 사용하면 치명적인 오류가 발생합니다. 일부 PHP 버전에서는

참조로 PHP Pass를 구현하는 예

다음은 언급된 예시입니다.

예시 #1

이것은 PHP 프로그래밍 언어의 참조에 의한 전달 개념을 보여주는 예입니다. 여기에서는 먼저 참조 함수 매개변수 "$a1"과 함께 "calculate()" 함수가 생성됩니다. 그런 다음 함수 내에서 해당 변수 값이 증가합니다. 그런 다음 함수 "$a1"에서 나온 후 변수 값은 "5"로 선언됩니다. 그런 다음 echo 기능을 사용하여 $a1 값이 인쇄된 다음 계산() 함수가 호출됩니다. 함수 호출 후 다시 echo 함수를 사용하는데 이번에는 incrementing으로 인해 변수값이 “6”으로 출력됩니다.

코드:

<?php
function calculate(&$a1){
$a1++;
}
$a1=5;
echo "This is the value of a1 variable before the function call :: ";
echo $a1;
echo "<br>";
echo "This is the value of a1 variable after the function call :: ";
calculate($a1);
echo $a1;
?>

출력:

PHP 참조로 전달

예시 #2

이것도 PHP 언어의 동일한 개념을 설명하는 예이지만 여기서는 예 1처럼 숫자 값을 사용하는 대신 문자열 값을 사용합니다. 여기서 print_string() 함수는 앰퍼샌드 기호 뒤에 변수 “string1”을 사용합니다. 그런 다음 함수 내부에서 string1 변수 값을 “Function shake”로 할당한 후 string1 변수 값을 인쇄하는 데 사용합니다. 그런 다음 함수 외부에서는 다시 string1 변수 값이 "Global Sake"로 할당됩니다. 그런 다음 다시 $string1 변수가 인쇄 기능을 사용하여 인쇄되지만 이번에는 함수 내부에 있는 문자열 값이 인쇄되지만 전역 값은 인쇄되지 않습니다. PHP와 같은 개념이기 때문입니다.

코드:

<?php
// Here Function is used just for assigning the new value to
// some $string1 variable and then printing it
echo "This is the exampe of PHP pass by reference concept :: ";
echo "<hr>";
function print_string( &$string1 ) {
$string1 = "Function sake \n";
// Print $string1 variable
print( $string1 );
echo "<br>";
}
// Drivers code
$string1 = "Global sake \n";
print_string( $string1 );
print( $string1 );
echo "<br>";
?>

출력:

PHP 참조로 전달

예시 #3

이 예는 예 2와 유사하지만 여기서는 앰퍼샌드 기호를 사용하지 않을 경우 어떤 일이 발생하는지 확인하기 위해 사용되지 않습니다. 앰퍼샌드가 사용되지 않으면 값 전달 개념으로도 부를 수 있습니다. 따라서 기능을 사용하지 않으려면 함수의 변수 매개변수 앞에 & 기호를 사용하는 것을 잊지 마세요. 여기서 두 번째 인쇄 출력에서는 참조 개념에 의한 전달이 부족하기 때문에 "Global Sake"를 얻게 됩니다. 개념을 더 잘 이해하려면 예제 2와 예제 3의 출력을 확인하세요.

코드:

<?php
// Here Function is used just for assigning the new value to
// some $string1 variable without using ampersand and then printing it
echo "This is the example of PHP pass by reference concept but exempted ampersand symbol :: ";
echo "<hr>";
function print_string( $string2 ) {
$string2 = "Function sake \n";
// Print $string1 variable
echo "This is the function's variable parameter value inside function :: ";
print( $string2 );
echo "<br>";
}
// Drivers code
$string2 = "Global sake \n";
print_string( $string2 );
echo "This is the function's variable parameter value outside the function :: ";
print( $string2 );
echo "<br>";
?>

출력:

PHP 참조로 전달

Example #4

This is the example of implementing the swapping functionality with the help of the swap() function and the same concept of the PHP Programming Language. Here at first two variables a1 , b1 is created with numerical and string values. Then those numbers are swapped with the swap() function. Then inside of the function using an extra variable value are jumbled to one other for swapping functionality. Then swapping will be done with that function. You can check out the output in the output section to understand the pass by reference with the swapping mechanism of PHP.

Code:

<?php
// ------------------------------------------
// This is sample Demo call of swap(...) function below.
echo "This is the example of swapping two variable values using the pass by reference concept of PHP :: ";
echo "<br>";
$a1 = 123.456;
$b1 = 'abcDEF';
print "<pre class="brush:php;toolbar:false">Define:\na1 = $a1\nb1 = '$b1'
"; swap($a1,$b1); print "
After swap(a1,b1):\na1 = '$a1'\nb1 = $b1
"; // ------------------------------- function swap (&$arg11, &$arg12) { // Now Swapping the contents of the indicated variables. $w1=$arg11;   $arg11=$arg12;   $arg12=$w1; } ?>

Output:

PHP 참조로 전달

Conclusion

I hope you learned what is the definition of PHP pass by reference along with its syntax and some explanation of the parameters, How the works in PHP Programming Language along with various examples of PHP to understand PHP pass by reference concept better.

위 내용은 PHP 참조로 전달의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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