Modification d'une variable globale à partir D'une fonction PHP
J'essaie de changer une variable qui est en dehors d'une fonction, à partir d'une fonction. Parce que si la date que la fonction vérifie est supérieure à un certain montant, j'en ai besoin pour changer l'année pour la date au début du code.
$var = "01-01-10";
function checkdate(){
if("Condition"){
$var = "01-01-11";
}
}
4 réponses
A. Utilisez le mot clé global pour importer à partir de la portée de l'application.
$var = "01-01-10";
function checkdate(){
global $var;
if("Condition"){
$var = "01-01-11";
}
}
checkdate();
B. Utilisez le tableau $GLOBALS.
$var = "01-01-10";
function checkdate(){
if("Condition"){
$GLOBALS['var'] = "01-01-11";
}
}
checkdate();
C. passez la variable par référence .
$var = "01-01-10";
function checkdate(&$funcVar){
if("Condition"){
$funcVar = "01-01-11";
}
}
checkdate($var);
Utilisez simplement le mot clé global
comme ceci:
$var = "01-01-10";
function checkdate(){
global $var;
if("Condition"){
$var = "01-01-11";
}
}
Toute référence à cette variable sera alors à la variable globale.
Toutes les réponses ici sont bonnes, mais... êtes-vous sûr de vouloir faire cela?
Changer les variables globales à partir des fonctions est généralement une mauvaise idée, car cela peut très facilement provoquer l'apparition de code spaghetti, dans lequel les variables sont modifiées dans tout le système, les fonctions sont interdépendantes les unes des autres, etc. C'est un véritable gâchis.
Permettez-moi de suggérer quelques alternatives:
1) programmation orientée Objet
2) ayant la fonction retourner 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
Fonction checkdate (&$valeurs) { si (condition) { $valeurs["date"] = "01-01-11"; } }
J'espère que cela aide.
Essayez ce passage par référence
$var = "01-01-10";
function checkdate(&$funcVar){
if("Condition"){
$funcVar = "01-01-11";
}
}
checkdate($var);
Ou essayez ceci comme ci-dessus, en gardant la fonction identique.
$var = "01-01-10";
function checkdate($funcVar){
if("Condition"){
$funcVar = "01-01-11";
}
}
checkdate(&$var);