Newsgroup: it.comp.www.php
Titolo: variabili a manetta

for ($c = 1; $c <= 10; $c++) {$var$c=$c; }
Chiaramente ciň che ho scritto sopra non funziona.
Io vorrei in un ciclo for-next creare variabili che contengano nel
loro nome il numero del ciclo e dargli il valore del ciclo.
Come si fa ?
Ilic.

 
ciao
Alesi_27

for ($c = 1; $c <= 10; $c++) {$var[$c]=$c; }
Eggià che pirla che sono.
Ora provo...
Grazie. Ilic.

 ha scritto nel messaggio
news:Yu%cb.126750$hE5.4...@news1.tin.it...
: Ilic wrote:
: > for ($c = 1; $c <= 10; $c++) {$var$c=$c; }
: >
:
: se vanno bene gli array:
:
: for ($c = 1; $c <= 10; $c++) {$var[$c]=$c; }
altrimenti:
for ($c = 1; $c <= 10; $c++) {
    $nomevar=$var.$c;
    $$nomevar=$c;
}
oppure:
for ($c = 1; $c <= 10; $c++) { ${$var.$c}=$c; }
:
: > Ilic.
: >
:
: ciao
: Alesi_27
-- 
Ciao da
       --§Ska-Man§--
----------------------
Marco Baldini
http://www.fantabasketpro.net
http://www.birraesalsiccia.net

Chiaramente ciň che ho scritto sopra non funziona.
	{${"$var$c"} = $c;}
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 {${"$var$c"} = $c;}
{ ${"var$c"} = $c;}


{ ${"var$c"} = $c;}
Stra-gulp. E' un bug del parser? { non dovrebbe volere il whitespace.
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space


 Stra-gulp. E' un bug del parser? { non dovrebbe volere il whitespace.
Lo ammette, solo che deve essere prematurato.
No, č questo :
con ${qualcosa} dichiari una variabile variabile. Tu come qualcosa hai messo
una stringa dentro double quote, che  come tale viene parsata: conteneva
$var e $c - $var non esiste, dobbiamo mettere solo 'var' per ottenere come
nome della variabile variabile var1 var2 .. per i diversi valori di $c.
Un sistema alternativo per ottenere lo stesso risultato č:
eval("\$var$c = \$c;");

$var e $c - $var non esiste
Aaaaah! No, quello era intenzionale: "$var" contiene il nome del prefisso,
e ammette $var = 'var'; come caso particolare :-)
Io credevo che tu volessi mettere uno spazio fra { e $ e siccome in teoria
non dovrebbe essere necessario (anche se chi lavora con gli array di array
finisce per avere dei dubbi sulla pignoleria del parser!), mi domandavo se
non fosse un bug.


for ($c = 1; $c <= 10; $c++) {$var$c=$c; }
ovvero creare $var1 = 1 ,$var2=2 .. $var10=2 Non ci sono array di array (?),
c'è un delimitatore di blocco e poi l'operatore variabile variabile..

c'è un delimitatore di blocco e poi l'operatore variabile variabile..
Si', si': scusa, provo a spiegarmi meglio, che se no altro che
supercazzole :-)
<?
	// Questo risolve appunto il problema detto, e mi pare funzioni
	// benissimo - riconosco senza difficolta' che mi sono scordato
	// di specificare l'assegnazione di $var, ma una letturina alle
	// FAQ e l'uso di error_reporting avrebbe ovviato utilmente.
	error_reporting(E_ALL);
        $var = 'pippo';
        for ($c = 0; $c < 5; $c++)
                {${"$var$c"} = $c;}
        print "$pippo0..$pippo4\n";
	// E questo e' l'errore degli array di array, di cui dicevo a
	// proposito delle "stranezze" del parser.
        $arr = array();
        $arr[0] = array( 0 => 'pippo' );
	// Questo forse non e' un bug, ma e' un comportamento anomalo
	// del parser che si verifica con gli array di array, e viene
	// risolto dalla graffa (purche' senza whitespace):
        print "$arr[0][0] vale pippo? No; seguir&agrave; dibattito.\n";
        print "{$arr[0][0]} vale pippo.\n";
        print $arr[0][0] . " vale pippo.\n";
?>


         print $arr[0][0] . " vale pippo.\n";
Muy interesante, però non è un bug..
http://www.php.net/manual/en/language.types.string.php#language.types.string
.syntax.double  si dice abbastanza chiaramente che un ] indica la fine della
variabile e in un commento:
// Works.  When using multi-dimensional arrays, always use
// braces around arrays when inside of strings
echo "This works: {$arr['foo'][3]}";
E' una limitazione che probabilmente ha a che fare con la natura associativa
degli array di PHP.