Nom d'une variable contenant une variable

Eléphant du PHP | 51 Messages

06 août 2017, 10:45

Bonjour à tous j'imagine que mon problème va vous parraître bien simple et pourtant il ne l'est pas pour moi :)

Dans le cadre d'un loop array j'ai une variable à renseigner à chaque loop, mais celle ci doit prendre la valeur de l'array
La ligne qui pose souci est

Code : Tout sélectionner

$contenu".$value." = 0;

Code : Tout sélectionner

<?php $annee_text= array("an_1970","an_1971", "an_1972"); foreach ($annee_text as $value) { $texte=$bdd->query('SELECT * FROM '.$value.' WHERE `num_jour` = '.$num_jour.'' ); $texte = $texte->fetch(); if(empty($texte['contenu_principal'])) { $contenu".$value." = 0; } else{
Merci de votre aide à tous :)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

06 août 2017, 11:53

Bonjour,
Cela s'appelle des variables dynamiques, voici la doc sur le sujet avec pas mal d'exemples explicites :
http://php.net/manual/fr/language.varia ... riable.php

Toutefois, mon conseil est d'éviter le plus possible d'avoir recours à ce type de variables et de préférer si c'est possible d'utiliser des tableaux avec des index que tu peux construire et manier + facilement. Ça facilitera beaucoup la relecture de ton code par la suite.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 51 Messages

07 août 2017, 22:15

Tout d'abord merci pour ta réponse et ton aide.
J'ai tenté d'appliquer les informtations de la page mais je n'y parviens pas.

J'ai tenté le code suivant

Code : Tout sélectionner

$essai = $value; //renvoi la valeur abcd echo $essai; // abcd $contenu ${$essai} = 0; //je voudrai que la variable $contenuabcd soit mise à 0

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 août 2017, 00:14

//je voudrai que la variable $contenuabcd
Donc il faut déjà que tu crées une variable qui aurait pour valeur le texte "contenuabcd".

Comment fais-tu cela ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 51 Messages

08 août 2017, 07:56

Merci de ton aide

Voici mon code en intégralité pour que tu me comprenne mieux :)
J'ai un array donc à chaque tour j'ai une $value
$essai devient $ value (soit an_1970 puis an_1971 ect
j'aimerai pouvoir renseigner une variable contenuan1970 puis au tour suivant une var contenuan_1971 ect

Code : Tout sélectionner

<?php $annee_text= array("an_1970","an_1971"); foreach ($annee_text as $value) { $texte=$bdd->query('SELECT * FROM '.$value.' WHERE `num_jour` = '.$num_jour.'' ); $texte = $texte->fetch(); if(empty($texte['contenu_principal'])) { $essai = $value; //renvoi la valeur ann_1970 echo $essai; // affiche bien an_1970 $contenu {$essai} = 0; //je voudrai que la variable $contenuan_1970 soit mise à 0 echo 'ma valeur est'; echo $contenuan_1970 ; // affiche ma valeur est an_1970 hors elle devrait afficher 0

Eléphant du PHP | 51 Messages

08 août 2017, 10:07

Finalement comme je ne trouve pas je vais voir du côté des keys pour les arrays pour spécifier une clée et la modifier ensutie si mon contenu est vide. Ca semble plus propre.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 août 2017, 11:59

Finalement comme je ne trouve pas je vais voir du côté des keys pour les arrays pour spécifier une clée et la modifier ensutie si mon contenu est vide. Ca semble plus propre.
Oui, c'est bien plus propre, c'est une meilleure approche !
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 51 Messages

09 août 2017, 21:25

Finalement comme je ne trouve pas je vais voir du côté des keys pour les arrays pour spécifier une clée et la modifier ensutie si mon contenu est vide. Ca semble plus propre.
Oui, c'est bien plus propre, c'est une meilleure approche !
Oui maintenant je le sais mais comme je débute google me mène parfois au delà de la logique lol :)