Как може да се проверява дали два масива са еднакви?
$arr1 === $arr2 $obj1 === $obj2 $c = new stdClass; $c->a = 2; $d = new stdClass; $d->a = 2; var_dump($c === $d); // bool(false) var_dump($c == $d); // bool(true)
Първото сравнение $c === $d ще бъде true, само ако не само данните на двата класа са еднакви (атрибути, техните стойности), но и ако двата обекта са всъщност един и същ обект. Дори и да са отделни обекти от един клас, пак няма да е true.
class ClassicClass { public int $i = 111; protected string $j = 'hello'; private bool $k = false; } $c = new ClassicClass; $d = new ClassicClass; var_dump($c === $d); // bool(false) $d = $c; var_dump($c === $d); // bool(true) $d = clone $c; var_dump($c === $d); // bool(false)
При масивите е по-просто.
$a = [11, 22, 33]; $b = [11, 22, 33]; if ($a == $b) { echo 'They are equal.'; } if ($a === $b) { echo 'Yes, they are.'; } // Output: They are equal.Yes they are.
Литература:
http://php.net/manual/en/language.oop5.object-comparison.php