Création Dynamique de Variable en PHP
Hors ligneDarkbul Le 24/03/2007 à 16:26 Profil de Darkbul Configuration de Darkbul

TITRE MODIFIE : Création Dynamique de Variable en PHP

Bonjour,

Voilà je dois pouvoir crée des variables dynamiquement car je ne sais pas combien j'en aurais besoin.

Par exemple q1..q30 je veux pas les faire l'une après l'autre...

Deplus je dois faire des testes et affecter des valeurs plus loin dans mon programme sur chaqune de ces variables.

J'ai écrit un bout de code qui me permet de crée des variables en leur affectant une valeurs venant d'une page HTML et de vérifier si toutes les variables ont une valeur:

--------------------------------------------------------------------
// Récupération des variables du formulaire

for ($i=1; $i<=10; $i++) {
     $q.$i = $_POST['q.$i'];
}

// Contrôle si toutes les variables ont été remplis.

$oubli=0;
For($i=1; $i<=10; $i++) {
     if (empty($q.$i.)) {$oubli += 1;}
}
--------------------------------------------------------------------

Mais ceci ne fonctionne pas.

Qqun pourrait il me donner une solution? ? ?


P.S: j'aurais pu y simplifier en:
--------------------------------------------------------------------
$oubli=0;
for ($i=1; $i<=10; $i++) {
     $q.$i = $_POST['q.$i'];
     if (empty($q.$i.)) {$oubli += 1;}
}
--------------------------------------------------------------------
Hors ligneEndiku Le 18/04/2007 à 21:46 Profil de Endiku Configuration de Endiku

Bonjour,

je crois qu'il te faut connaitre la fonction "eval".

Exemple:

<?
$i=33;
eval('$q'.$i.'=10;');
print $q33;
?>


Mais pourquoi ne pas utiliser un tableau associatif

for ($i=1; $i<=10; $i++) {
    $q[$i] = $_POST['q'.$i];
}

(Note attention tu avais ecrit POST['q.$i'] et ce qui est entre '' n'est pas evalué...

Enkidu
Hors ligneAudayls Le 20/05/2007 à 13:43 Profil de Audayls Configuration de Audayls

Jeune Padawan
Salut,
Il y a 2 méthodes pour créer ce que tu nommes des variables dynamiques :

  • Soit tu utilises comme la dit Endiku les tableaux, donc cela donnera :

    <?php
    $i 
    = -1// Si il n'y a pas de $_POST['q0'] mets $i = 0;
    while (isset($_POST['q'.++$i])) $q[$i] = $_POST['q'.$i];
    ?>

  • Soit tu utilises les accolades "{}", ce qui donnera :
    <?php
    $i 
    = -1// Si il n'y a pas de $_POST['q0'] mets $i = 0;
    while (isset($_POST['q'.++$i])) ${'q'.$i} = $_POST['q'.$i];
    ?>

--
'Cause it's a bittersweet symphony, this life
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels