La modification d'une variable globale à partir de l'intérieur d'une fonction PHP
Je suis en train de changer une variable qui est en dehors d'une fonction, à partir de l'intérieur d'une fonction. Parce que si la date à laquelle la fonction est de la vérification d'un certain montant que j'en ai besoin pour changer l'année de la date de début du code.
$var = "01-01-10";
function checkdate(){
if("Condition"){
$var = "01-01-11";
}
}
Vous devez vous connecter pour publier un commentaire.
A. Utilisation de la mondial mot-clé à importer à partir de la portée de l'application.
B. Utiliser les $GLOBALS tableau.
C. Passer la variable par référence.
$var = checkdate($var);
?$var
. À l'intérieur de la fonction, il peut avoir un autre nom, j'ai donc choisi$funcVar
spécifiquement pour illustrer que le nom peut être différent. Concernant$var = checkdate($var);
, le but de l'exemple est de montrer en passant par référence et en changeant la variable directement dans la fonction.function checkdate(&$funcVar)
combiné aveccheckdate($var);
cartes de l'extérieur$var
à l'intérieur$funcVar
.Suffit d'utiliser la
global
mot-clé comme:Toute référence à cette variable sera pour le mondial ensuite.
global
les changements de la variable$var
l'intérieur de la fonction au point à l'échelle mondiale. Lorsque vous modifiez la variable à l'intérieur de la fonction, il va modifier le global.Ici toutes les réponses sont bonnes, mais... êtes-vous sûr de vouloir faire cela?
Évolution des variables globales à l'intérieur des fonctions est généralement une mauvaise idée, car il peut très facilement causer de code spaghetti à se produire, dans lequel les variables sont en train d'être changé tout le système, les fonctions sont interdépendants les uns des autres, etc. C'est un véritable gâchis.
Permettez-moi de suggérer quelques solutions de rechange:
1) programmation orientée Objet
2) Ayant la fonction renvoie une valeur, qui est affecté par l'appelant.
par exemple, $var =
checkdate();
3) Ayant la valeur stockée dans un tableau qui est passé dans la fonction par référence
la fonction checkdate(&$valeur) {
si (condition) {
$valeurs["date"] = "01-01-11";
}
}
Espère que cette aide.
Essayer ce passage par référence
ou Essayez cette même comme ci-dessus, en gardant la fonction en tant que de même.