What about a magic __toArray() method?

From: Date: Tue, 04 Feb 2020 07:15:27 +0000
Subject: What about a magic __toArray() method?
Groups: php.internals 
Request: Send a blank email to internals+get-108351@lists.php.net to get a copy of this message
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.

« previous php.internals (#108351) next »