PHP에서 참조 기호(&)를 사용하는 방법에 대한 자세한 설명

伊谢尔伦
풀어 주다: 2023-03-14 10:10:02
원래의
2807명이 탐색했습니다.

PHP에서 참조는 변수, 함수, 개체 등 앞에 & 기호를 추가하는 것입니다. PHP에서 참조는 서로 다른 이름이 동일한 변수 내용에 액세스한다는 의미입니다.

C 언어에서는 포인터에 차이가 있습니다. C 언어의 포인터는 변수의 내용이 메모리에 저장되는 주소 변수에 대한 참조를 저장합니다.
PHP의 참조를 사용하면 두 개의 변수를 사용하여 동일한 내용을 가리킬 수 있습니다.

$a="ABC"; 
$b =&$a; 
echo $a;//这里输出:ABC 
echo $b;//这里输出:ABC 
$b="EFG"; 
echo $a;//这里$a的值变为EFG 所以输出EFG 
echo $b;//这里输出EFG
로그인 후 복사

함수의 주소로 호출
주소로 호출 me 더 이상 고민할 필요 없이 코드는 바로 아래에 나와 있습니다

function test(&$a) 
{ 
$a=$a+100; 
} 
$b=1; 
echo $b;//输出1 
test($b);   //这里$b传递给函数的其实是$b的变量内容所处的内存地址,通过在函数里改变$a的值 就可以改变$b的值了 
echo "<br>"; 
echo $b;//输出101
로그인 후 복사

여기서 test(1);을 사용하면 오류가 발생한다는 점에 유의하세요. 이유는 직접 생각해 보세요
함수의 참조 반환
을 보세요. code first

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();를 통해 얻은 것이 함수의 참조 반환이라고 규정합니다. 참조가 어떤 변수에 바인딩되어야 하는지 알아보세요.) 이 헛소리가 오랫동안 저를 괴롭혔습니다. 이해하세요
위의 예를 사용하여 $a=test()를 사용하여 함수를 호출하면 함수의 값이 $a에만 할당된다는 점을 설명합니다. $a에 대한 모든 변경 사항은 함수의 $b에 영향을 미치지 않습니다.
$a=&test()를 통해 함수를 호출할 때 해당 함수는 반환 $b에서 $b 변수의 메모리 주소와 변수의 메모리 주소를 가리키는 것입니다. $a 변수를 같은 위치에 지정하면 이와 동일한 효과가 발생합니다( $a=&b;). 따라서 $a 값을 변경하면 $b 값도 변경됩니다. 따라서
$a=&test(); a=5;
, $b의 값은 5가 됩니다.

위 내용은 PHP에서 참조 기호(&)를 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!