hi,
I extended ArrayObject (SPL) to a new class. Let's call it ExtObjectArray. ExtArrayObject is quiet tiny, only with some simple functions. One is called getData() and serves some string data. Now I've overloaded the class using __toString() ...
public function __toString() { return( $this->getData()); }
What I wish to do is, to ...
$obj = new ExtArrayObject; print( (string)$obj);
... and it doesn't work. And i've absolutly no idea why. PHP prints instead of the getData() String the object ID, as the __toString isn't called. What actually is true. There are no errors, no warnings, no notices at all. If i invoke __toString() [print( $obj->__toString())] direct, it works fine!
First i assumed it's a spelling mistake. But __toString(), including the case, is okay (source: zend2-engine-changes). Then i tried it without access spec. So without public, but that doesn't work either. Replacing the return statement in the __toString() method with a simple print( "foo\n"), I realized, that the method won't be called.
That really sucks! :o) My PHP Version is php 5.0.1 build from source.
Btw.: this little example also doesn't work.
--- begin <? class foo { function __toString() { return("hallo"); } }
$a = new foo; echo (string)$a; ?> --- end
Assigning to another var instead directly output the object doesn't work either as the Zend Changelog (till 2004-07-14) doesn't say anything explaining the problem.
anybody have more clue about that?
regards, Stefan
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php