예를 들어 다음 클래스가 있습니다.PHP는 객체 할당을 사용할 때 항상 사본을 만들었습니까?
class A {
public $foo = 1;
}
$a = new A;
$b = $a; // a copy of the same identifier (NB)
은 식별자의 사본이 만들어지는 current PHP docs에 따르면, 이것은 항상 그런 되었는가? 그렇지 않은 경우 언제 변경 되었습니까?
예를 들어 다음 클래스가 있습니다.PHP는 객체 할당을 사용할 때 항상 사본을 만들었습니까?
class A {
public $foo = 1;
}
$a = new A;
$b = $a; // a copy of the same identifier (NB)
은 식별자의 사본이 만들어지는 current PHP docs에 따르면, 이것은 항상 그런 되었는가? 그렇지 않은 경우 언제 변경 되었습니까?
항상 그런 것은 아닙니다. PHP4에서 새로운 변수에 할당되면 객체가 복사되었습니다. PHP5가 소개되었을 때, 이것은 할당 된 객체의 참조를 전달하기 위해 변경되었습니다.
는 PHP 5에서 새로운 객체 모델이있다. PHP의 객체 처리가 완전히 재 작성되어 성능과 기능이 향상되었습니다. 이전 버전의 PHP에서는 객체가 원시 유형 (예 : 정수 및 문자열)처럼 처리되었습니다. 이 방법의 단점은 의미 적으로 변수가 할당 될 때 전체 객체가 복사되거나 메소드에 매개 변수로 전달된다는 것입니다. 새로운 접근법에서 객체는 값이 아닌 핸들에 의해 참조됩니다 (핸들을 객체의 식별자로 생각할 수 있음).
이는 사본이라고하지는 않습니다. 그것은 완전히 다른 것을 말합니다. –