CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet résolu : [PHP] Variable globale dans une fonction en paramètre

DébutPage précedente
1
Page suivantePage suivante
Ganja-Inside Ganja-Inside
MP
Niveau 9
20 mai 2016 à 15:12:56

Salut à tous :)

Je cherche à affecter des variables ($Colonnes, $Valeurs et $Donnees) grâce à une fonction $Action($Colonne, $Valeur) passée en paramètre dans la fonction ProprietesBDD($Action)

Voici le code, ça sera certainement plus clair :-)

La fonction:

protected function ProprietesBDD($Actions) {
    $Proprietes = get_object_vars($this);
    foreach ($Proprietes as $Colonne => $Valeur) {
        $Actions($Colonne, $Valeur);
    }
}

Son utilisation:

$Colonnes = []; $Valeurs = []; $Donnees = [];

$this->ProprietesBDD(function($Colonne, $Valeur) {
    array_push($Colonnes, strtolower($Colonne));
    array_push($Valeurs, "?");
    array_push($Donnees, filtre::entree(strval($Valeur)));
});

Mon problème est que les variables que je veux affecter avec array_push ne sont pas à porté :(
J'ai tenté d'utiliser global, sans succès

Connaissez-vous une solution à ce problème :question:

Merci ! ':)

Ganja-Inside Ganja-Inside
MP
Niveau 9
20 mai 2016 à 15:24:11

Bon, finalement j'ai trouvé la solution en utilisant use dans le passage de la fonction en paramètre, en n'oubliant pas le & pour mettre les variables en output

$this->ProprietesBDD(function($Colonne, $Valeur) use (&$Colonnes, &$Valeurs, &$Donnees) {
    array_push($Colonnes, strtolower($Colonne));
    array_push($Valeurs, "?");
    array_push($Donnees, filtre::entree(strval($Valeur)));
});
Message édité le 20 mai 2016 à 15:25:12 par Ganja-Inside
deepblue deepblue
MP
Niveau 13
20 mai 2016 à 17:23:56

Et tu peux remplacer function($Colonne, $Valeur) par function().

Ganja-Inside Ganja-Inside
MP
Niveau 9
20 mai 2016 à 22:57:41

Le 20 mai 2016 à 17:23:56 deepblue a écrit :
Et tu peux remplacer function($Colonne, $Valeur) par function().

Pourquoi ?

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment