严格比较DateTime对象

时间:2017-04-24 15:38:04

标签: php datetime object comparison-operators

我正在对对象列表进行严格比较,只是为了识别可能已更改的对象,例如:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select

def setUp():
    driver = webdriver.Chrome()

    driver.maximize_window()

    driver.implicitly_wait(30)

    base_url = ('enter your url')

    driver.get(base_url)

    task = driver.find_element_by_id("some_element_id")

    task.send_keys("Some_text",Keys.ENTER)


setUp()

在某些情况下,if ($oldValue !== $newValue) $oldValue$newValue个对象。

调试我的应用程序在比较它们之前,我得到了以下两个值的输出:

  

DateTime对象   (       [date] => 2017-04-24 00:00:00.000000       [timezone_type] => 3       [timezone] =>世界标准时间   )

     

DateTime对象   (       [date] => 2017-04-24 00:00:00.000000       [timezone_type] => 3       [timezone] =>世界标准时间   )

为什么我的比较/条件仍然正确?

1 个答案:

答案 0 :(得分:4)

在PHP中比较对象时,===运算符不会比较值。 It compares instances。这意味着除非两个对象都指向同一个对象,否则它们并不完全相同。

  

使用比较运算符(==)时,会比较对象变量   以一种简单的方式,即:两个对象实例是相等的   具有相同的属性和值(值与==比较),和   是同一类的实例。

     

使用identity运算符(===)时,对象变量是相同的   当且仅当他们引用同一个类的同一个实例时。