使用'<'比较PHP中的两个对象

时间:2017-04-16 05:32:29

标签: php

我的朋友问我如何在PHP中创建和比较日期。因为我知道PHP中有一个DateTime类,所以我告诉她搜索它并在理解后使用它,但是我不确定比较的东西。所以我用谷歌搜索你如何比较PHP中的日期。我认为DateTime类使用一些内置方法来比较日期。但令我惊讶的是,代码看起来像这样:

$today_dt = new DateTime($today);
$expire_dt = new DateTime($expire);

if ($expire_dt < $today_dt) { /* Do something */ }

我不明白的是,如何使用<之类的比较运算符来比较两个'对象'。我以为你只能使用比较运算符来比较原始数据类型。那么PHP如何使用比较运算符比较两个'对象'?

2 个答案:

答案 0 :(得分:8)

没有详细记录,但在比较对象时,PHP按声明顺序逐个比较成员变量,直到找到第一个不均匀变量,然后根据该变量返回结果。

更多详细信息:http://us3.php.net/manual/en/language.oop5.object-comparison.php#98725

答案 1 :(得分:1)

是的,通常,你会是正确的 - &gt;但是,对于PHP的内置类,例如DateTime,这是不同的。 https://wiki.php.net/internals/engine/objects#compare_objects

我希望有一个“__compare”魔术方法的实现来实现比较。但是,目前您有两种选择:

在阅读上面@WhatHaveYouTriedSoFar的答案后编辑: 1)你可以利用PHP比较对象的方式,“比较操作停止并在找到的第一个不相等的属性处返回”({{3 }})

2)你可以创建自己的“比较”方法。

相关问题