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