I'm not sure what difference you are referring to. $stuff will contain the the same value after both snippets, so at least with respect to intent they are equivalent. What I can see is that the first one will have a hidden side effect when return_value() produces an Lvalue - which for me is just another reason to shun that version. Is there something I missed?