Since 5.3.1 it's impossible to have a reference parameter passed to a __call() function. This is apparently due to the bugfix committed by stas as shown here:
<http://svn.php.net/viewvc/php/php-src/branches/PHP_5_2/Zend/zend_execute_API.c?r1=287466&r2=287465&pathrev=287466> Test cases can be found here: <http://bugs.php.net/bug.php?id=50394>. It seems to me that a special case would be needed to restore the behaviour seen in PHP 5.3.0. This change causes bugs in MediaWiki, where an attempt by a proxy object to pass a call through to a function that accepts reference parameters will always fail, due to the exacerbating change made to reference argument semantics in PHP 5.3.0. If we want MediaWiki to support PHP 5.3.1, we'll have to do some major changes, like abandoning __call entirely, or rewriting all the relevant interfaces to not use reference parameters. I'm not too keen about doing this without getting some indication from the PHP dev team as to whether this change is permanent or whether it will be fixed in an imminent PHP 5.3.2 release. If it's going to be fixed soon, we can just blacklist PHP 5.3.1 in our installer. I've tried emailing stas but I didn't get a reply. -- Tim Starling -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php
