> Or operator-overlading to the rescue? :-) Not quite. Especially because with operator overloading done at this level (how it would be implemented in PHP) it's almost impossible to make it consistent:
class string { public function overload+($mixed) { return $this->value + $mixed; } } class Integer { public function overload+($mixed) { return $this->value + $mixed; } } $int = new Integer(5); $string = new String("5"); echo $int + $string; // 10 echo $string + $int; // 55 While I like the concept of overloading, I don't really think it's solvable in a consistent enough manner that it would work here. On Sun, Feb 26, 2012 at 11:12 AM, Stefan Neufeind <neufe...@php.net> wrote: > On 02/26/2012 04:48 PM, Anthony Ferrara wrote: >>> I have to say, it doesn't get work, thinking this: >>> >>> $mixed1 = new Interger(2); >>> $mixed2 = new Interge(3); >>> $guess_what_type_is = $mixed1 + $mixed2; >>> >>> thanks >> >> That one is actually pretty straight forward. Since `+` is a numeric >> operation (with the one exception of array + array), it would call >> castTo('numeric') on both. Then, the normal type rules would take >> over. So if it returned an int, the result would be int(5). If it >> returned a float, it would be float(5)... > > Or operator-overlading to the rescue? :-) > > > (Okay, I know that idea has been burried a long time ago - but might > come in hand here as well. > http://bugs.php.net/bug.php?id=9331 > http://pecl.php.net/package/operator > ) > > > Regards, > Stefan > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php