- error_reporting: documentation ( source)
<?php
class PhpRefCallBugTester {
public $ok = false;
function __call( $name, $args ) {
$old = error_reporting( E_ALL & ~E_WARNING );
call_user_func_array( array( $this, 'checkForBrokenRef' ), $args );
error_reporting( $old );
}
function checkForBrokenRef( &$var ) {
if ( $var ) {
$this->ok = true;
}
}
function execute() {
$var = true;
call_user_func_array( array( $this, 'foo' ), array( &$var ) );
}
}
$rcbt = new PhpRefCallBugTester;
$rcbt->execute();
echo (int)$rcbt->ok;