>백엔드 개발 >PHP 튜토리얼 >PHP 함수 앞에 앰퍼샌드를 사용하는 방법은 무엇입니까?

PHP 함수 앞에 앰퍼샌드를 사용하는 방법은 무엇입니까?

巴扎黑
巴扎黑원래의
2017-08-05 09:58:301587검색

이 글에서는 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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