Hallo,
Du hast warscheinlich ein problem mit dem aufruf Kontext in dem dein Template file geladen wird.
Wenn du innerhalb einer funktion include() oder require() verwendest um dateien nachzuladen, so wird dieser code teil der funktion. Das heisst alle lokalen variablen der funktion stehen für den eingebunden code zur verfügung als wären sie global.
Alle globalen variablen stehen nur über $GLOBALS zur verfügung.
Hier ein kurzes beispiel dass es veranschaulicht:
Dieser code müsste deinen fehler nachstellen:
bar.php
index.php
Nun füren wir das include mal manuell aus, und gucken was passiert:
Nun dürftest du sehen, wo das Problem her kommt.
Um es zu umschiffen, kannst du entweder vor dem include alle variablen die du übergeben willst global definieren, oder in deinem template das $GLOBALS array verwenden.
Beispiel 1:
bar.php
index.php
Beispiel 2:
bar.php
index.php
Du hast warscheinlich ein problem mit dem aufruf Kontext in dem dein Template file geladen wird.
Wenn du innerhalb einer funktion include() oder require() verwendest um dateien nachzuladen, so wird dieser code teil der funktion. Das heisst alle lokalen variablen der funktion stehen für den eingebunden code zur verfügung als wären sie global.
Alle globalen variablen stehen nur über $GLOBALS zur verfügung.
Hier ein kurzes beispiel dass es veranschaulicht:
Dieser code müsste deinen fehler nachstellen:
bar.php
PHP:
echo $foo;
PHP:
$foo = "hallo";
function load_me() {
include "bar.php";
}
load_me();
Nun füren wir das include mal manuell aus, und gucken was passiert:
PHP:
$foo = "hallo";
function load_me() {
//include "bar.php"; BEGIN
echo $foo;
//include END
}
load_me();
Nun dürftest du sehen, wo das Problem her kommt.
Um es zu umschiffen, kannst du entweder vor dem include alle variablen die du übergeben willst global definieren, oder in deinem template das $GLOBALS array verwenden.
Beispiel 1:
bar.php
PHP:
echo $foo;
PHP:
$foo = "hallo";
function load_me() {
global $foo;
include "bar.php";
}
load_me();
Beispiel 2:
bar.php
PHP:
echo $GLOBALS['foo'];
PHP:
$foo = "hallo";
function load_me() {
include "bar.php";
}
load_me();