On Thu, Mar 26, 2020 at 5:37 PM <jan.h.boeh...@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

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to