Darkbul |
Le 24/03/2007 Ã 16:26 |
|
|
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;} } -------------------------------------------------------------------- |
Endiku |
Le 18/04/2007 Ã 21:46 |
|
|
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 |
Audayls |
Le 20/05/2007 Ã 13:43 |
|
 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  |