Hallo Melvin,
ich stehe vor einem grundlegenden PHP Verständnisproblem: Wie bekannt, kann innerhalb einer Funktion nicht auf eine Variable zugegriffen werden, die außerhalb der Funktion definiert ist:
Ressource 'test.php':
<?php $name = 'Hans'; function testfunktion() { return $name; } echo testfunktion(); ?>
Das funktioniert nicht und führt zu einem "Notice: Undefined variable: name".
Der PHP-Interpreter kennt verschiedene Gültigkeitsbereiche für Variablen, sog. Scopes. Die Variable hast du im globalen Scope angelegt, die Funktion hat ihren eigenen Scope. Du musst dem Interpreter sagen, dass du die Variable aus dem globalen Scope haben willst:
$foo = "bar";
function fun() {
global $foo;
echo $foo;
}
Wenn man allerdings eine 2. Ressource 'config.php' anlegt, in der die Variable definiert ist, diese dann mit require() innerhalb der Funktion einbindet und auf diesem Weg auf den Variablenwert zugreifen öchte, dann funktioniert das:
config.php
wird in dem Fall im gleichen Scope ausgewertet wie die Funktion, deshalb ist hier $name
eine Funktions-lokale Variable.
LG,
CK