2011-07-02 9 views

Répondre

3

fonctions ne peuvent retourner les variables qu'ils ont dans leur espace local, appelé champ:

$a = "ciao"; 

function a() { 
    $a = 'hello`; 
    return $a; 
} 

sera de retour hello, parce que dans a(), $a est une variable de son propre. Si vous avez besoin d'une variable dans la fonction, passer comme paramètre:

$a = "ciao"; 

function a($a) { 
    return $a; 
} 
echo a($a); # "ciao" 

BTW, si vous activez NOTICES to be reported (error_reporting(-1);), PHP vous aurait donné un avis que return $a dans votre code d'origine utilisait une variable non définie.

3

En PHP, les fonctions n'ont pas accès aux variables globales. Utilisez global $a dans le corps de la fonction ou transmettez la valeur de $ a comme paramètre.

+5

Ne suggérez pas d'utiliser 'global', suggérez d'utiliser un paramètre de fonction à la place. – hakre

2

$a n'est pas inclus dans la portée. PHP ne fonctionne pas avec une portée de bloc de fermeture comme JS, par exemple, si vous souhaitez accéder à une variable externe dans une fonction, vous devez la passer dans un sens, ou utiliser global pour la rendre disponible, ce qui est mal vu.

$a = "ciao"; 

function a() { 
    global $a; 
    return $a; 
} 

ou avec un style de fermeture PHP5.3 +

function a() use ($a) { 
    return $a; 
} 
Questions connexes