Computer >> 컴퓨터 >  >> 프로그램 작성 >> PHP

PHP 참조

<시간/>

소개

PHP에서 참조 다른 이름으로 동일한 변수 내용에 액세스할 수 있습니다. 그것들을 사용하여 산술 연산을 수행할 수 없기 때문에 C/C++의 포인터와 다릅니다. C/C++에서는 실제 메모리 주소입니다. 반대로 PHP에서는 기호 테이블 별칭입니다. PHP에서는 변수 이름과 변수 내용이 다르기 때문에 같은 내용이라도 이름이 다를 수 있습니다. 참조 변수는 & 접두사로 생성됩니다. 원래 변수에 서명합니다. 따라서 $b=&$a $b가 $a의 참조 변수임을 의미합니다.

참조로 할당

다음 예에서 두 변수는 동일한 값을 참조합니다.

예시

<?php
$var1=10;
$var2=&$var1;
echo "$var1 $var2\n";
$var2=20;
echo "$var1 $var2\n";
?>

출력

하나의 값이 변경되면 다른 값에도 반영됩니다.

10 10
20 20

참조로 정의되지 않은 변수를 할당, 전달 또는 반환하면 생성됩니다. 함수 내에서 전역으로 선언된 변수에 대한 참조를 할당하면 참조는 함수 내에서만 볼 수 있습니다. foreach 문에서 참조가 있는 변수에 값을 할당하면 참조도 수정됩니다.

예시

<?php
$arr=[1,2,3,4,5];
$i=&$ref;
foreach($arr as $i)
echo $i*$i, "\n";
echo "ref = ". $ref;
?>

출력

$ref의 값은 배열의 마지막 요소의 값을 저장합니다.

1
4
9
16
25
ref = 5

다음 예에서 배열 요소는 배열 초기화 전에 선언된 개별 변수에 대한 참조입니다. 요소가 수정되면 변수의 값도 변경됩니다.

예시

<?php
$a = 10;
$b = 20;
$c=30;
$arr = array(&$a, &$b, &$c);
for ($i=0; $i<3; $i++)
$arr[$i]++;
echo "$a $b $c";
?>

출력

$a, $b 및 $c의 값도 증가합니다.

11 21 31