Можно использовать 2 оператора:
1) оператор сравнения ==
Сравнивается имеют ли два объекта одинаковые атрибуты, одинаковы ли они по сути.
2) более строгий оператор идентичности ===
Требует, чтобы 2 сравниваемых объекта ссылались на один и тот же объект.
<?php
// Оперетор сравнения ==
// Оператор идентичности ===
class Box {
public $name = "box";
}
$box = new Box();
$box_reference = $box; // присвоение по ссылки
$box_clone = clone $box;
$box_changed = clone $box;
$box_changed->name = "changed box";
$another_box = new Box();
// сравним
echo $box == $box_reference ? 'true' : 'false'; // true
echo "<br />";
echo $box == $box_clone ? 'true' : 'false'; // true
echo "<br />";
echo $box == $box_changed ? 'true' : 'false'; // false
echo "<br />";
echo $box == $another_box ? 'true' : 'false'; // true
echo "<br /> <br />";
echo "<hr />";
// проверим на идентичность
echo $box === $box_reference ? 'true' : 'false'; // true, это ссылка, которая указывает на одну и ту же вещь
echo "<br />";
echo $box === $box_clone ? 'true' : 'false'; // false
echo "<br />";
echo $box === $box_changed ? 'true' : 'false'; // false
echo "<br />";
echo $box === $another_box ? 'true' : 'false'; // false
echo "<br /> <br />";
?>
1) оператор сравнения ==
Сравнивается имеют ли два объекта одинаковые атрибуты, одинаковы ли они по сути.
2) более строгий оператор идентичности ===
Требует, чтобы 2 сравниваемых объекта ссылались на один и тот же объект.
<?php
// Оперетор сравнения ==
// Оператор идентичности ===
class Box {
public $name = "box";
}
$box = new Box();
$box_reference = $box; // присвоение по ссылки
$box_clone = clone $box;
$box_changed = clone $box;
$box_changed->name = "changed box";
$another_box = new Box();
// сравним
echo $box == $box_reference ? 'true' : 'false'; // true
echo "<br />";
echo $box == $box_clone ? 'true' : 'false'; // true
echo "<br />";
echo $box == $box_changed ? 'true' : 'false'; // false
echo "<br />";
echo $box == $another_box ? 'true' : 'false'; // true
echo "<br /> <br />";
echo "<hr />";
// проверим на идентичность
echo $box === $box_reference ? 'true' : 'false'; // true, это ссылка, которая указывает на одну и ту же вещь
echo "<br />";
echo $box === $box_clone ? 'true' : 'false'; // false
echo "<br />";
echo $box === $box_changed ? 'true' : 'false'; // false
echo "<br />";
echo $box === $another_box ? 'true' : 'false'; // false
echo "<br /> <br />";
?>
Комментариев нет:
Отправить комментарий