Bug #74940 [NEW]: DateTimeZone loose comparison always true until properties are initialized.

From: Date: Mon, 17 Jul 2017 12:52:19 +0000
Subject: Bug #74940 [NEW]: DateTimeZone loose comparison always true until properties are initialized.
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-210087@lists.php.net to get a copy of this message
From: arjen at parse dot nl Operating system: Linux PHP version: 7.1.7 Package: Date/time related Bug Type: Bug Bug description:DateTimeZone loose comparison always true until properties are initialized. Description: ------------ When using the loose equal comparision, the result is always true when the internal DateTimeZone properties have not been initialized yet. Properties have to be 'initialized' by var_dump'ing the objects. See https://3v4l.org/EQ1AG#v720alpha3 Test script: --------------- <?php $tz = new DateTimeZone('Europe/Amsterdam'); $utc = new DateTimeZone('UTC'); var_dump($tz == $utc); var_dump($tz === $utc); var_dump($tz, $utc); var_dump($tz == $utc); var_dump($tz === $utc); Expected result: ---------------- bool(false) bool(false) object(DateTimeZone)#1 (2) { ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } object(DateTimeZone)#2 (2) { ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } bool(false) bool(false) Actual result: -------------- bool(true) bool(false) object(DateTimeZone)#1 (2) { ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } object(DateTimeZone)#2 (2) { ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } bool(false) bool(false) -- Edit bug report at https://bugs.php.net/bug.php?id=74940&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=74940&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=74940&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=74940&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=74940&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=74940&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=74940&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=74940&r=needscript Try newer version: https://bugs.php.net/fix.php?id=74940&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=74940&r=support Expected behavior: https://bugs.php.net/fix.php?id=74940&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=74940&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=74940&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=74940&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=74940&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=74940&r=dst IIS Stability: https://bugs.php.net/fix.php?id=74940&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=74940&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=74940&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=74940&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=74940&r=mysqlcfg

« previous php.bugs (#210087) next »