Anche se Paolo descrive cosa sta succedendo, proverò a spiegare di nuovo.
Quando si crea una variabile appartiene a un particolare ambito. Un ambito è un'area in cui è possibile utilizzare una variabile.
Ad esempio se ero farlo
$some_var = 1;
function some_fun()
{
echo $some_var;
}
la variabile non è consentita all'interno della funzione perché non è stato creato all'interno della funzione. Per farlo funzionare all'interno di una funzione è necessario utilizzare la parola chiave globale in modo l'esempio di seguito funzionerebbe
$some_var = 1;
function some_fun()
{
global $some_var; //Call the variable into the function scope!
echo $some_var;
}
Questo è viceversa quindi non è possibile effettuare le seguenti operazioni
function init()
{
$some_var = true;
}
init();
if($some_var) // this is not defined.
{
}
Ci sono alcuni modi intorno a questo, ma il più semplice di tutti sta usando l'array $GLOBALS
che è consentito ovunque all'interno dello script in quanto sono variabili speciali.
Così
$GLOBALS['config'] = array(
'Some Car' => 22
);
function do_something()
{
echo $GLOBALS['config']['some Car']; //works
}
anche assicurarsi che il server ha Registra globali spente nella vostra INI per la sicurezza. http://www.php.net/manual/en/security.globals.php
ottimo.Ciò risolve il problema: D – ganjan
In alternativa puoi 'require()' il file dall'interno della funzione stessa. Anche questo lo avrebbe messo nella portata corretta. Non posso dire che in realtà lo raccomando, ma il punto è: quando includi un file, viene eseguito nel campo di applicazione dell'istruzione di inclusione. –