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.

Reply via email to