복제를 통해 $a = $b 및 $a = clone $b의 의미를 이해할 수 있습니다. 그러나 실제 응용에서는 여전히 두 개체 간의 관계가 복제인지 참조인지 확인해야 합니다. 이는 비교 연산자 "==" 및 "==="를 사용하여 수행할 수 있습니다.
연산자 "==" 및 "==="
비교 연산자(==) 를 사용하여 두 객체 변수를 비교할 때 And 합동 연산자(===) 를 사용하는 경우 이 두 객체 변수는 특정 유형의 동일한 인스턴스(즉, 동일한 객체)를 가리켜야 합니다.
아래 예를 살펴보겠습니다. <?php
header("content-type:text/html;charset=utf-8");
class Dog{
public $type;
public $age;
function __construct($type,$age)
{
$this->type = $type;
$this->age = $age;
}
}
$dog1 = new Dog('二哈','2');
$dog2 = new Dog('二哈','2');
if($dog1 == $dog2){
echo '<br/> $dog1 == $dog2';
}
if($dog1 === $dog2){
echo '<br/>$dog1 === $dog2 ';
}else{
echo '<br/>他们不能全等';
}
echo '<hr/>';
$dog3 = $dog1;
if($dog1 == $dog3){
echo '<br/> $dog1 == $dog3';
}
if($dog1 === $dog3){
echo '<br/>$dog1 === $dog3 ';
}else{
echo '<br/>他们不能全等';
}
먼저 개 클래스를 생성하고 class 에서 생성자를 만듭니다. 그런 다음 $dog1 및 $dog2라는 두 개의 동일한 클래스를 인스턴스화합니다. 그런 다음 인스턴스화된 두 클래스를 비교합니다. 먼저 비교 연산자 "=="를 사용하세요. 위에서 이 기호의 의미를 언급했습니다. 비교 연산자(==)를 사용하여 두 객체 변수를 비교할 때 비교 원칙은 다음과 같습니다. 두 객체의 속성과 속성 값이 동일하고 두 객체가 객체가 클래스의 동일한 인스턴스이면 두 객체 변수가 동일합니다. 우선 $dog1과 $dog2의 속성과 속성값이 동일하다고 판단하고, 둘째 둘 다 동일한 Dog-like 클래스의 인스턴스화 결과이므로 결과는 $dog1= =$개2. 그런데 다음 판단은 $dog1===$dog2 가 같을까요? "===" 연산자가 보유할 조건을 살펴보겠습니다. 합동 연산자(===)를 사용하는 경우 두 객체 변수는 특정 유형의 동일한 인스턴스(즉, 동일한 인스턴스)를 가리켜야 합니다. 물체). 이는 "===" 연산자의 양쪽에서 비교된 값이 동일한 객체인 경우에만 해당될 수 있습니다. $dog1과 $dog2는 두 개의 인스턴스이므로 동일하지 않으므로 "==="를 설정할 수 없습니다. 우리는 $dog3 = $dog1이라는 조건을 부여하고 동일한 방법을 사용하여 객체를 비교하고 판단하여 그것이 참인지 확인합니다. 위의 예시를 실행하여 결과를 확인할 수 있습니다.
위 내용은 PHP 객체지향에서의 객체비교 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!