>백엔드 개발 >PHP 튜토리얼 >PHP에서 클래스 객체 생성에 대한 자세한 설명

PHP에서 클래스 객체 생성에 대한 자세한 설명

小云云
小云云원래의
2018-03-31 10:00:591403검색

이 글은 주로 텍스트와 코드를 사용하여 PHP로 생성된 객체에 대한 자세한 설명을 공유합니다.

PHP에서 객체 생성은 다음과 같습니다. 새 클래스 이름

Class A{
	public $p1=1;
}
$o1=new A();
var_dump($o1);

결과는 다음과 같습니다.

$o1 변수는 클래스 A의 객체 유형임을 알 수 있습니다. "#1"은 시스템 내부 맞춤 식별자입니다.

시스템이 생성되면 변수 $o1은 실제로 시스템 내부의 사용자 정의 식별자 #1에 저장되고, #1을 통해 해당 객체 엔터티를 찾습니다(참조로 전달하는 것과 유사).

$o1 변수를 $o2에 할당한 후 객체 o1의 해당 p1 값을 변경합니다. 이때 o2의 해당 p1 값도 변경됩니다.

$o2=$o1;
$o1->p1=10;
echo "<br/>$o2->p1";
var_dump($o2);

$o1의 속성을 변경하면 $ o2의 속성도 이에 따라 변경됩니다. 그리고 o1과 o2의 속성은 동일합니다(사실 그들은 동일한 객체를 가리킵니다).

실제 방법은 그림과 같습니다.


그리고 클래스 객체에서 pass by value를 적용하는 경우:

Class A{
	public $p1=1;
}
$o1=new A();
$o2=&$o1;
$o1->p1=10;
echo $o1->p1;
echo "<br/>";
echo $o2->p1;
echo "<br/>";
var_dump($o1);
echo "<br/>";
var_dump($o2);

객체 o1에서 p1 속성을 변경할 때, o2 또한 변했습니다. 이는 '값 전달' 및 '참조 전달'에 대한 이전의 이해와 다릅니다.

구체적인 구현 방법은 다음과 같습니다.


그래서 $o2는 설정 해제($o1) 후에도 여전히 존재합니다.

Class A{
	public $p1=1;
}
$o1=new A();
$o2=&$o1;
$o1->p1=10;
unset($o1);
echo $o1->p1;
echo "<br/>";
echo $o2->p1;
echo "<br/>";
var_dump($o1);
echo "<br/>";
var_dump($o2);

위 내용은 PHP에서 클래스 객체 생성에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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