Question sur la portée de variable
testerlasocieter
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Pourquoi
fonctionne au niveau de l'instruction montrée
ne fonctionne pas au niveau de l'instructions montrée ? :(
Pourtant, au vu du cours sur la portée des variables, une variable définit dans un scope supérieur est accessible dans un scope enfant qu'est la fonction, non ?
Merci d'avance
Pourquoi
<?php
function test () {
$newShipper = $ShipperClass->GetShipperName(); //retourne une chaine de caractere
echo $newShipper; // <-- instruction montrée a une valeur qui convient
}
test();
fonctionne au niveau de l'instruction montrée
$newShipper = $ShipperClass->GetShipperName(); //retourne une chaine de caractere
function test () {
echo $newShipper; // <-- instruction montrée est NULL
}
test();
ne fonctionne pas au niveau de l'instructions montrée ? :(
Pourtant, au vu du cours sur la portée des variables, une variable définit dans un scope supérieur est accessible dans un scope enfant qu'est la fonction, non ?
Merci d'avance
1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
En PHP, une variable globale doit être déclarée à l'intérieur de chaque fonction afin de pouvoir être utilisée dans cette fonction.
https://www.php.net/manual/fr/language.variables.scope.php$newShipper = $ShipperClass->GetShipperName(); //retourne une chaine de caractere function test () { global $newShipper; echo $newShipper; // <-- instruction montrée va utiliser la variable globale } test();