From: [EMAIL PROTECTED] Operating system: Solaris PHP version: 4.0.6 PHP Bug Type: Variables related Bug description: ternary ?: loses references This may be a subtlety of the ?: operator that I failed to spot - then again it may just be a bug. Using ?: with references loses the reference, as the example below illustrates. In both cases a reference to the second argument to a function should be returned, the result modified and the original argument displayed. The expectation being that it has now changed. When the reference is returned from and if-then-else statement all is fine. When the reference is, or isn't?, returned from ?: the result is not as expected. The output from the code is [1] [xx] [1] [2] function &return_ref(&$arg1, &$arg2, $cond) { if ($cond) { return $arg1; } else { return $arg2; } } function &return_ref_ternary(&$arg1, &$arg2, $cond) { return ($cond ? $arg1 : $arg2); } $arg1 = '1'; $arg2 = '2'; $res =& return_ref($arg1, $arg2, false); $res = 'xx'; echo "[$arg1] [$arg2]\n"; $arg1 = '1'; $arg2 = '2'; $res =& return_ref_ternary($arg1, $arg2, false); $res = 'xx'; echo "[$arg1] [$arg2]\n"; -- nick -- Edit bug report at: http://bugs.php.net/?id=12247&edit=1 -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]