Re: Re: [VOTE] Userspace operator overloading
| From: | Guilliam Xavier | Date: | Thu, 26 Mar 2020 17:18:58 +0000 |
| Subject: | Re: Re: [VOTE] Userspace operator overloading | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-109345@lists.php.net to get a copy of this message | ||
On Thu, Mar 26, 2020 at 5:37 PM <jan.h.boehmer@gmx.de> wrote:
>
> The overloaded concat operator has higher priority than the __toString() method.
> So if Class A overloades the concat operator, then calling $a . $b means ClassA::__concat($a,
> $b); (Note that both operands are passed in their original form)
> If you want to concat the string representations, you will have to explicitly convert the
> objects to strings:
> $ret = (string) $a . (string) $b;
This first part seems legit to me.
> If the concat operator is not overloaded, the behavior is like now, and the objects are
> converted implicitly to strings (so $a . $b actually means (string) $a . (string) $b).
> Furthermore an notice is triggered, hinting the user that he could overload the concat
> operator. (Maybe here a different message than for the other operators would be useful).
I fear that "hint" notice could break Symfony apps... Couldn't you
just not trigger it in this case?
--
Guilliam Xavier