Bug #78383 [Asn->Csd]: Casting a DateTime to array no longer returns its properties

From: Date: Thu, 08 Aug 2019 07:56:22 +0000
Subject: Bug #78383 [Asn->Csd]: Casting a DateTime to array no longer returns its properties
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-222133@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=78383&edit=1 ID: 78383 Updated by: nikic@php.net Reported by: jeremy at derusse dot com Summary: Casting a DateTime to array no longer returns its properties -Status: Assigned +Status: Closed Type: Bug Package: Date/time related Operating System: Linux PHP Version: 7.4.0beta1 Assigned To: nikic Block user comment: N Private report: N New Comment: Automatic comment on behalf of nikita.ppv@gmail.com Revision: http://git.php.net/?p=php-src.git;a=commit;h=fc17bfaacfd48b3952652792bf684ff223499678 Log: Fixed bug #78383 Previous Comments: ------------------------------------------------------------------------ [2019-08-07 20:41:48] jeremy at derusse dot com We (symfony) implemented a generic serialization mechanism that uses array casts to extract state from objects. DateTime was not needing any special care, but now it would because the behavior changed between php 7.3 and 7.4, IMHO, it's a BC break. Not https://3v4l.org/rdhKg: another change in the bevahior of \Datetime casting. ------------------------------------------------------------------------ [2019-08-07 16:30:17] cmb@php.net Well, then ... :) ------------------------------------------------------------------------ [2019-08-07 16:25:35] nikic@php.net We could easily restore the previous behavior wrt array casts here -- we're already keeping compatibility with json_encode() for example. What's the use case? ------------------------------------------------------------------------ [2019-08-07 16:21:11] cmb@php.net > Casting to an array is undefined, […] Not wrt. objects[1]: | An array converts to an object with properties named by keys and | corresponding values. Anyhow, this is a deliberate change[2]; DateTime objects are not supposed to have public properties. [1] <https://www.php.net/manual/en/language.types.object.php#language.types.object.casting> [2] <https://github.com/php/php-src/blob/be794894ef30764e54a8a52fa6c085f3c4a88b14/UPGRADING#L56-L57> ------------------------------------------------------------------------ [2019-08-07 16:02:26] duncan3dc@php.net Casting to an array is undefined, see here: https://www.php.net/manual/en/language.types.type-juggling.php ("The behaviour of an automatic conversion to array is currently undefined") ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=78383 -- Edit this bug report at https://bugs.php.net/bug.php?id=78383&edit=1

« previous php.bugs (#222133) next »