Oder führt php bereits Programmcode aus, ohne zu wissen, was später kommt?
PHP ist zwar prinzipiell eine prozedurale bzw. strukturierte Scriptsprache (die auch Objektorientierung erlaubt) - sie wird aber nicht vollständig interpretiert sondern kurz vor Ausführung kompiliert.
Wann include- oder require-Anweisungen aufgelöst werden und was mit den Variablen passiert, ist aber klar definiert (siehe Dokumentation).
Was haben denn deine Versuche ergeben um das selbst herrauszufinden?
echo foo();  
  
function foo() {  
	return 'foobar';  
}
oder
echo foo();
include('foo-function.php');
function foo() {  
	return 'foobar';  
}
 nicht angemeldet
 nicht angemeldet Der Martin
 Der Martin