Novi: include()

Beitrag lesen

Hallo,

Noch nicht einmal das!

Die Reihenfolge der Includes ist vollkommen irrelevant.
PHP ist ein Interpreter, der zuerst die deklaratorische Arbeit erledigt, also alle Deklarationen einliest und die dabei gefundenen Funktionen registriert und erst dann den operativen Teil startet, also die Funktionen auch aufruft...

Du kannst also Dein "Main" vor der Deklaration (und Definition) der Funktionen stehen haben.

Also die Reihenfolge der includes ist schon wichtig:

a.php

<?php  
function test() {  
    echo 'test';  
}  
?>

b.php

<?php  
test();  
?>

Folgendes geht:

main.php

<?php  
include 'a.php';  
include 'b.php';  
?>

Dies löst folgende Fehlermeldung aus:
Fatal error: Call to undefined function test() in b.php on line 2

main.php

<?php  
include 'b.php';  
include 'a.php';  
?>

PHP erlaubt ja auch includes inerhalb von Funktionen und unter bestimmten Bedingungen. Es ist also gar nicht immer möglich für den Interpreter alle Funktionen voher zu erfassen.

Für eine Datei trifft deine Aussage jedoch durchaus zu:

<?php
test();
function test() {
    echo 'test';
}
?>

Dieses Beispiel geht also wieder ohne Probleme, da PHP "zuerst die deklaratorische Arbeit erledigt".

Viele Grüße Novi

--
"(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)