[php] 데이터 타입에 따른 변수 복사

변수 복사는 프로그래밍에서 중요한 부분 중 하나입니다. PHP에서 변수를 복사할 때 데이터 타입에 따라 어떻게 동작하는지 알아보겠습니다.

1. 기본 데이터 타입

정수 (Integer)와 실수 (Float)

$a = 5;
$b = $a; // $b는 5
$a = 5.5;
$b = $a; // $b는 5.5

정수와 실수 모두 변수를 복사할 때 이 복사됩니다.

문자열 (String)

$a = "Hello";
$b = $a; // $b는 "Hello"

문자열도 정수와 실수와 같이 이 복사됩니다.

2. 복합 데이터 타입

배열 (Array)

$a = [1, 2, 3];
$b = $a; // $b는 [1, 2, 3]

배열을 다른 변수에 할당할 때에는 참조가 복사됩니다. 즉, 두 변수는 같은 배열을 가리키게 됩니다. 따라서 원본 배열이 변경되면 복사된 배열에도 영향을 미칩니다.

객체 (Object)

class MyClass {
    public $data = "Hello";
}

$a = new MyClass();
$b = $a; // $b는 $a와 같은 객체를 참조함

객체 역시 배열과 같이 참조가 복사됩니다. 따라서 두 변수는 같은 객체를 가리키며, 하나의 변수에서 객체를 변경하면 다른 변수에서도 변경사항이 반영됩니다.

결론

데이터 타입에 따라 변수 복사의 동작 방식이 다릅니다. 기본 데이터 타입은 값이 복사되지만, 복합 데이터 타입은 참조가 복사됩니다. 이를 이해하고 활용하여 변수 복사를 안전하게 처리할 수 있습니다.

참조 : PHP 공식 문서