Marcus Boerger wrote:
> Hello Jeremy,
>
>   it is supposed to work everywhere in head and will be available in 5.2.
>

Is there a generic way (for extensions, of course) to override the operators 
between objects implementing __toString()?

See, I have two objects:

        $o1 = new QString("php");
        $o2 = new QString("-internals");

Now I could do:
        $result = $o1->operator+=($o2);

better would be:
        $result = $o1 .= $o2;

should result in "php-internals"

Can I modify the object structure in any way to register my own operator 
functions which can be called by the engines execution unit? I found only 
hard-wired implementations of that if I looked into the 'zend execute' code 
or maybe I'm wrong. Ideally there would be something like a pointer in every 
zval which points to a struct or table of 'operator-function pointers'. In 
this case I could override it and point to another operator-function pointer 
table. Ok, I can dream ;-)

In the current implementation (php 5.1) a function zend_make_printable' is  
called, and there zend_std_cast_object_tostring. This means that the objects 
__toString() result will be passed to the underlying system, and there is no 
unicode support yet. What I would prefer is calling overidden operators 
before __toString() is called.

Am I wrong? Can anybody help me please?

Thanks, 
Thomas

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

Reply via email to