Hey all. Instead of adding more magic I personally like the approach of explicitness more and your suggest adding an interface "Arrayable" (naming is hard and this might not be the best name) instead. Whether that interface then defines a `__toArray()`-method or something entirely different is then a different matter.
Additionally this would be in line with Nicolas RFC regarding "Stringable" (https://wiki.php.net/rfc/stringable) Just my 0.02€ Cheers Andreas Am 04.02.20 um 08:18 schrieb Midori Koçak: > 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. >> > -- ,,, (o o) +---------------------------------------------------------ooO-(_)-Ooo-+ | Andreas Heigl | | mailto:andr...@heigl.org N 50°22'59.5" E 08°23'58" | | http://andreas.heigl.org http://hei.gl/wiFKy7 | +---------------------------------------------------------------------+ | http://hei.gl/root-ca | +---------------------------------------------------------------------+
signature.asc
Description: OpenPGP digital signature