이 글에서는 주로 PHP 함수 앞의 앰퍼샌드 분해를 소개합니다. 해당 기능은 참조 반환이라고 하는데, 이는 다소 추상적입니다. 자세한 설명이 필요한 친구는 이 글의 내용을 참고하세요.
php 변수 앞의 앰퍼샌드가 무슨 뜻인지는 말할 필요도 없이 모두가 사용하고 있다는 뜻인데, 두 개의 변수가 동시에 하나의 주소를 가리킨다는 뜻인데, 앞에 앰퍼샌드를 붙이는 의미는 무엇일까요? PHP 함수? 아래에는 먼저 두 개의 데모 코드가 있고 그 다음에 설명이 있습니다.
function &chhua() { static $b="www.jb51.net";//申明一个静态变量 $b=$b."WEB开发"; echo $b; return $b; } $a=chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发” $a="PHP"; echo "<Br>"; $a=chhua();//这条语 句会输出 $b的值 为“www.jb51.netWEB开发WEB开发” echo "<Br>"; $a=&chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发WEB开发WEB开发” echo "<Br>"; $a="JS"; $a=chhua(); //这条语句会输出 $b的值 为"JSWEB开发" function &test() { static $b=0;//申明一个静态变量 $b=$b+1; echo $b; return $b; } $a=test();//这条语句会输出 $b的值 为1 $a=5; $a=test();//这 条语句会输出 $b的值 为2 $a=&test();//这条语句会输出 $b的值 为3 $a=5; $a=test(); //这条语句会输出 $b的值 为6
두 번째 기능을 설명하겠습니다.
$a=test(); 이런 식으로 얻는 것은 실제로 함수 참조 반환이 아니며, 이는 일반적인 함수 호출과 다르지 않습니다.
이유는 다음과 같습니다. 이것은 PHP 규정입니다.
php에서는 $a=를 규정합니다. &test() ; 메서드는 함수의 참조 반환입니다.
참조 반환이 무엇인지에 대해 설명합니다(PHP 설명서에 따르면 참조가 바인딩되어야 하는 변수를 찾기 위해 함수를 사용하려고 할 때 참조 반환이 사용됩니다.)
사용 위의 예에서는
$a=test()를 사용하여 함수를 호출하면 함수의 값이 $a에만 할당되고 $a에 대한 변경 사항은 함수의 $b에 영향을 미치지 않는다는 것을 설명합니다.
그리고 $a를 통해. =&test() 메서드에서 함수를 호출하면 그 함수는 반환 $b에서 $b 변수의 메모리 주소와 $a 변수의 메모리 주소를 동일한 위치로 가리키는 것입니다. 즉, 효과는 다음과 같습니다. ($ a=&b;) 따라서 $a 값을 변경하면 $b 값도 변경되므로 다음을 실행한 후
$a=&test() $a=5; $b 값은 5가 됩니다. .
위 내용은 PHP 함수 앞에 앰퍼샌드를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!