Die require_once()-Anweisung ersetzt sich selbst
durch die angegebene Datei (ähnlich der C-Preprozessor-Anweisung
#include), funktioniert also ähnlich wie die
require()-Anweisung. Der Hauptunterschied dazu
liegt in der Tatsache, dass bei require_once()
der einzubindende Code genau einmal in das Skript eingefügt wird.
Sie erzeugen beispielsweise die folgenden zwei Include-Dateien
utils.inc und foolib.inc:
Beispiel 11-2. utils.inc <?php
define(PHPVERSION, floor(phpversion()));
echo "GLOBALE SIND GUT\n";
function guterTee() {
return "Oolong-Tee schmeckt gut!";
}
?> |
|
Beispiel 11-3. foolib.inc <?php
require ("utils.inc");
function zeigeVar($var) {
if (PHPVERSION == 4) {
print_r($var);
} else {
var_dump($var);
}
}
// es folgen weiter Funktionen ...
?> |
|
Nun schreiben Sie ein Skript
cause_error_require.php:
Beispiel 11-4. cause_error_require.php <?php
require("foolib.inc");
/* das Folgende erzeugt einen Fehler */
require("utils.inc");
$foo = array("1",array("complex","quaternion"));
echo "dies erfordert utils.inc, das auch\n";
echo "in foolib.inc erforderlich ist\n";
echo "Aufruf von guterTee: ".guterTee()."\n";
echo "Ausgabe foo: \n";
showVar($foo);
?> |
|
Wenn Sie letzteres starten, wird folgende Ausgabe erzeugt (gilt für
PHP 4.01pl2):
Durch Umschreiben von
foolib.inc und
cause_errror_require.php (Gebrauch von
require_once() statt
require()) und Umbenennung des letzten Skriptes
zu
avoid_error_require_once.php haben wir nun:
Beispiel 11-5. foolib.inc (fixed) ...
require_once("utils.inc");
function showVar($var) {
... |
|
Beispiel 11-6. avoid_error_require_once.php ...
require_once("foolib.inc");
require_once("utils.inc");
$foo = array("1",array("complex","quaternion"));
... |
|
Beim nachfolgenden Aufruf wird folgende Ausgabe erzeugt (bei PHP
4.0.1pl2):
Beachten Sie, dass analog zum Verhalten von
#include im C-Preprozessor diese Anweisung zur
Zeit der Skript-"Compilierung" ausgewertet wird; sollten Sie also
z.B. das Skript vor dessen Ausführung parsen und bei der Ausführung
keinen Gebrauch machen wollen von dynamisch einzuschließenden
Teilen, sollten Sie include_once() oder
include() verwenden.
Weiter Beispiele zu require_once() und
include_once() können Sie dem PEAR-Code
entnehmen, welcher im aktuellsten PHP-Source-Code enthalten ist.
Siehe auch: require(),
include(), include_once(),
get_required_files(),
get_included_files(),
readfile(),
und virtual().