What about a magic __toArray() method?
| From: | Midori Koçak | 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.