|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-12-07 12:27 UTC] cmb@php.net
-Status: Open
+Status: Verified
-Package: *General Issues
+Package: Scripting Engine problem
[2020-12-07 12:27 UTC] cmb@php.net
[2020-12-07 13:03 UTC] nikic@php.net
-Status: Verified
+Status: Wont fix
[2020-12-07 13:03 UTC] nikic@php.net
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 15 06:00:01 2025 UTC |
Description: ------------ PHP 7.1.6-1~ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jun 9 2017 08:26:34) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies with Zend OPcache v7.1.6-1~ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2017, by Zend Technologies with Xdebug v2.5.5, Copyright (c) 2002-2017, by Derick Rethans Test script: --------------- class Foobar implements \Serializable { /** @return string */ public function serialize(): string { return serialize(new \DateTimeZone('Europe/Andorra')); } /** @param string $serialized */ public function unserialize($serialized) { var_dump($serialized); var_dump(unserialize($serialized)->getName()); } } (new Foobar())->unserialize((new Foobar())->serialize()); var_dump(unserialize(serialize(new Foobar()))); Expected result: ---------------- The DateTimeZone object correct initialization Actual result: -------------- /tmp/test.php:14: string(86) "O:12:"DateTimeZone":2:{s:13:"timezone_type";i:3;s:8:"timezone";s:14:"Europe/Andorra";}" /tmp/test.php:15: string(14) "Europe/Andorra" /tmp/test.php:14: string(86) "O:12:"DateTimeZone":2:{s:13:"timezone_type";i:3;s:8:"timezone";s:14:"Europe/Andorra";}" PHP Warning: DateTimeZone::getName(): The DateTimeZone object has not been correctly initialized by its constructor in /tmp/test.php on line 15 PHP Stack trace: PHP 1. {main}() /tmp/test.php:0 PHP 2. unserialize() /tmp/test.php:20 PHP 3. Foobar->unserialize() /tmp/test.php:20 PHP 4. DateTimeZone->getName() /tmp/test.php:15 /tmp/test.php:15: bool(false) /tmp/test.php:20: class Foobar#1 (0) { }