Строгое сравнение объектов DateTime

Я делаю строгое сравнение списка объектов, просто чтобы определить объекты, которые могли измениться, например:

if ($oldValue !== $newValue)

в некоторых случаях $oldValue а также $newValue являются DateTime объекты.

Отладка моего приложения Я получаю следующий вывод для моих двух значений непосредственно перед их сравнением:

DateTime Object
(
[дата] => 2017-04-24 00: 00: 00.000000
[timezone_type] => 3
[часовой пояс] => UTC
)

DateTime Object
(
[дата] => 2017-04-24 00: 00: 00.000000
[timezone_type] => 3
[часовой пояс] => UTC
)

Почему мое сравнение / условие все еще верно?

2

Решение

При сравнении объектов в PHP === Оператор не сравнивает значения. Это сравнивает случаи. Это означает, что если оба объекта не указывают на один и тот же объект, они не являются строго равными.

При использовании оператора сравнения (==) переменные объекта сравниваются
простым способом, а именно: два экземпляра объекта равны, если они
имеют одинаковые атрибуты и значения (значения сравниваются с ==), и
являются экземплярами одного и того же класса.

При использовании идентификатора оператора (===) переменные объекта идентичны
если и только если они ссылаются на один и тот же экземпляр одного и того же класса.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]