>  기사  >  백엔드 개발  >  PHP 변수를 참조하는 방법은 무엇입니까? PHP 변수 참조 메커니즘의 방법 요약

PHP 변수를 참조하는 방법은 무엇입니까? PHP 변수 참조 메커니즘의 방법 요약

不言
不言원래의
2018-08-18 17:55:323287검색

이 기사에서 제공하는 내용은 PHP 변수를 참조하는 방법이 무엇인지입니다. PHP 변수의 참조 메커니즘에 대한 이 요약은 특정 참조 가치가 있습니다. 도움이 필요한 친구들이 참조할 수 있기를 바랍니다.

1. PHP의 변수 참조, "&":

$a  = "hello world";//定义一个变量,下面赋值给$b
$b = $a;            //这一步实际上原理是会将变量$a复制拷贝一份,也就是内存中重新申请一个地址存储变量$b

참고: PHP에서는 "="을 사용하여 값을 직접 할당합니다. 이는 실제로 오른쪽에 있는 변수를 복사합니다. $b에 추가하면 메모리 공간이 생성되고 결과적으로 메모리에 동일한 내용이 두 개 복사될 수 있습니다.

2. 참조를 만들려면 "&" 기호를 사용하세요.

$a  = "hello world";
$b = &$a;

참고: 참조를 사용할 때 PHP 엔진은 실제로 변수를 복사하지 않습니다. 포인터는 $a를 가리키며, 이 포인터는 $b에 저장됩니다.
따라서 참조를 사용할 때 $b의 값을 변경하면 $a도 그에 따라 변경됩니다.

$a  = "hello world";
$b = &$a;
$b = "test new value";  //把b的值改掉,a的值也会跟着改变
echo $a;                //输出test new value,因为改变了b的值也会改变a的值。

함수를 정의할 때 다음과 같은 상황을 자주 봅니다.

function test (&$param){
    $param++;
}
$k = 8;
test($k);
echo $k; //结果$k的值被函数里面改变了,输出9。

참고: $param 앞에 참조가 있으므로 매개변수에 전달됩니다. 메모리에 복사되지 않고 원래 메모리 공간을 직접 참조합니다. 따라서 & 기호를 사용하여 전달된 변수 값이 수정되면 원래 메모리 공간의 값도 변경됩니다.

3. 변수를 파기할 때. 원래 값은 변경되지 않습니다.

$a = 'd';
$b = &$a;
$b = 8;   
var_dump($b,$a);   //因为是引用了,所以把b的值改掉,a的值也跟着改为8了。
unset($b);         //调用unset删除b变量,a变量不会删除
var_dump($b,$a);   //输出null和8
참고: $b 변수를 삭제하기 위해 unset을 호출할 때 변수 기호 테이블에서 발견된 PHP 엔진: 삭제하려는 변수 $b는 원래 $a 변수를 참조하지만, $a 변수는 삭제하자마자 사라지기 때문에 먼저 $a 변수를 복사한 후 $b 변수를 삭제합니다.


관련 권장 사항:

php는 open, fwrite를 사용하여 파일(코드)을 여러 형식으로 내보냅니다.

파일을 내보낼 때 phpExcel 메모리 오버플로 솔루션

위 내용은 PHP 변수를 참조하는 방법은 무엇입니까? PHP 변수 참조 메커니즘의 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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