Edit report at https://bugs.php.net/bug.php?id=54740&edit=1
ID: 54740 Comment by: marrch dot caat at gmail dot com Reported by: dukeofgaming at gmail dot com Summary: Ternary operator will not work with return by reference Status: Open Type: Bug Package: Compile Failure PHP Version: Irrelevant Block user comment: N Private report: N New Comment: This is a general problem with reference inside ternary operator. For ex., the following script fails with the same error: $link = isset($i) ? (& $arr[$i]) : null; - while the following works fine: $link = & $arr[$i]; Previous Comments: ------------------------------------------------------------------------ [2011-05-15 22:59:17] dukeofgaming at gmail dot com Description: ------------ PHP fails to parse a returned by reference value when using the ternary operator. The test script provided illustrates a case of when it is absolutely necessary to return by reference; if the "&" is removed then the output would be a fatal error: "Fatal error: Cannot use [] for reading in <...>" Test script: --------------- $value = ($condition)?( $some_value ):(&$object->Collection[]); Expected result: ---------------- No errors, should be the equivalent of having: if($condition){ $value = $some_value; }else{ $value = &$object->Collection[]; } Actual result: -------------- Parse error: syntax error, unexpected '&' in <...> ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=54740&edit=1