Pour une raison cette fonction ne retourne pas la valeur ciao
:La fonction ne renvoie pas de valeur
$a = "ciao";
function a() {
return $a;
}
Je ne sais pas pourquoi.
Pour une raison cette fonction ne retourne pas la valeur ciao
:La fonction ne renvoie pas de valeur
$a = "ciao";
function a() {
return $a;
}
Je ne sais pas pourquoi.
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.
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.
Ne suggérez pas d'utiliser 'global', suggérez d'utiliser un paramètre de fonction à la place. – hakre
$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;
}
Lire http://php.net/manual/fr/language.variables.scope.php. Il est expliqué tout en haut. – Tomalak