Functions and classes declared anywhere in a file are pushed to the top of that file by the parser. This obscures all the edge cases. Simplest example I can think of:<p><pre><code>  echo foo('baz'); // error

  {
    function foo($bar) { return $bar; } // not pulled to top of file
  }</code></pre>