Why does it make a difference if a function's return value (a variable) is passed and not a variable directly? In the PHP documentation for the empty() function it is stated that
5.5.0: empty() now supports expressions, rather than only variables.
But why would that make a difference anyway? If the given expression has a variable as a return value - in my eyes - both statements would be exactly the same.