Oh there is even a rfc. https://wiki.php.net/rfc/to-array What is the status of this?
On Tue, 4 Feb 2020 at 08:18, Midori Koçak <mtko...@gmail.com> wrote: > Or we can deprecate __toString() method at all and detect cast events > instead. Would it make more sense? Something like this __casted(). > > P.S: I saw the previous conversation but hence now we have types, it would > make sense. > > Midori > > On Tue, 4 Feb 2020 at 08:15, Midori Koçak <mtko...@gmail.com> wrote: > >> As you know we have __toString method that runs whenever an object is >> typecasted to string or it is directly echoed. >> >> <?php >> >> $class = (new class{ >> public function __toString(){ >> echo "casted\n"; >> return "mahmut\n"; >> } >> }); >> >> echo $class; >> $casted = (string)$class; >> >> /* >> prints: >> casted >> mahmut >> casted >> mahmut >> */ >> >> >> As you know toArray() method implemented when an object is converted into >> and array and most of the time when a plain data object is sent to >> front-end. >> >> Having a magic method like __toString called __toArray would be useful to >> detect and act on conversion events. >> >> Roughly it would be like: >> >> <?php >> >> $class = (new class{ >> public function __toArray(){ >> echo "casted\n"; >> return >> [ >> 'key'=>'value' >> ]; >> } >> }); >> >> >> $casted = (array)$class; >> print_r($casted); >> >> /* >> prints: >> Array >> ( >> [key] => value >> ) >> mahmut >> */ >> >> What would you think? I think it would add value. >> >