할당 연산자

기본 할당 연산자는 "="입니다. 첫 번째 성향은 이것을 "같음"으로 생각하는 것일 수 있습니다. 하지마. 이것은 왼쪽 피연산자가 오른쪽 표현식의 값으로 설정된다는 것을 의미합니다(즉, "설정됨").

할당 표현식의 값은 할당된 값입니다. 즉, "$a = 3"의 값은 3입니다. 이를 통해 몇 가지 까다로운 작업을 수행할 수 있습니다.

                  
<?php

$a = ($b = 4) + 5; // $a is equal to 9 now, and $b has been set to 4.

?>
                  
                

기본 할당 연산자 외에도 표현식의 값을 사용한 다음 해당 값을 해당 표현식의 결과로 설정할 수 있는 모든 이진 산술, 배열 통합 및 문자열 연산자에 대한 "결합 연산자"가 있습니다. 예를 들어:

                  
<?php

$a = 3;
$a += 5; // sets $a to 8, as if we had said: $a = $a + 5;
$b = "Hello ";
$b .= "There!"; // sets $b to "Hello There!", just like $b = $b . "There!";

?>
                  
                

할당은 원래 변수를 새 변수에 복사하므로(값에 의한 할당), 하나를 변경해도 다른 변수에 영향을 주지 않습니다. 이것은 타이트한 루프 내부에 큰 배열과 같은 것을 복사해야 하는 경우에도 관련이 있을 수 있습니다.

PHP 내에서 값에 의한 일반적인 할당 동작에 대한 예외는 참조에 의해 할당되는 객체에서 발생합니다. 객체는 clone 키워드를 통해 명시적으로 복사될 수 있습니다.

참조에 의한 할당

"$var = &$othervar;"를 사용하여 참조에 의한 할당도 지원됩니다. 통사론. 참조에 의한 할당은 두 변수가 모두 동일한 데이터를 가리키고 아무데도 복사되지 않음을 의미합니다.

예제 #1 참조에 의한 할당

                  
<?php
$a = 3;
$b = &$a; // $b is a reference to $a

print "$a\n"; // prints 3
print "$b\n"; // prints 3

$a = 4; // change $a

print "$a\n"; // prints 4
print "$b\n"; // prints 4 as well, since $b is a reference to $a, which has
              // been changed
?>
                  
                

new 연산자는 참조로 new의 결과를 할당하는 것은 오류이므로 자동으로 참조를 반환합니다.

                  
<?php
class C {}

$o = &new C;
?>
                  
                

위의 예는 다음을 출력합니다.

Parse error: syntax error, unexpected 'new' (T_NEW) in …
                

참조 및 잠재적 사용에 대한 자세한 정보는 설명서의 참조 설명 섹션에서 찾을 수 있습니다.

산술 할당 연산자
Example Equivalent Operation
$a += $b $a = $a + $b Addition
$a -= $b $a = $a - $b Subtraction
$a *= $b $a = $a * $b Multiplication
$a /= $b $a = $a / $b Division
$a %= $b $a = $a % $b Modulus
$a **= $b $a = $a ** $b Exponentiation
비트 할당 연산자
Example Equivalent Operation
$a &= $b $a = $a & $b Bitwise And
$a |= $b $a = $a | $b Bitwise Or
$a ^= $b $a = $a ^ $b Bitwise Xor
$a <<= $b $a = $a << $b Left Shift
$a >>= $b $a = $a >> $b Right Shift
기타 할당 연산자
Example Equivalent Operation
$a .= $b $a = $a . $b String Concatenation
$a ??= $b $a = $a ?? $b Null Coalesce
기타