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.