PHP function calls returning references

Let's say we have this function:

<?php
function &collector() {
  static
$c = array();
  return
$c;
}
?>

we can use this like the following (very familiar to D7 coders):
<?php
 
// Note that $x = collector(); won't work.
 
$x = &collector();
 
$x[] = 'foo';
?>

Say you wanted to have one line code:
<?php
  array_push
(&collector(), 'foo');
?>

PHP Fatal error:  Can't use function return value in write context.

Makes sense? Not to me. However, the following works:

<?php
  array_push
(collector(), 'foo');
?>

How can this work? Well it turns out the Zend Engine has a special case to handle this so do not try to deduce it from knowledge of how references work in general. It works "just because".