Evaluare variabila din obiect cu index in for()

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
andras
Mesaje: 430

Evaluare variabila din obiect cu index in for()

Salut,
Dupa ce instantiez o clasa obtin variabilele publice definite in clasa (exemplu);

Cod: Selectaţi tot

<?php
$obj->v1 //in clasa am public $v1 = 'x';
$obj->v2 //in clasa am public $v2 = 'y';
?>
dar vreau sa le obtin dintr-o bucla, cam asa:

Cod: Selectaţi tot

<?php
for ($i==1; $i<=$obj->vcimpuri; $i++){
$v= '$obj->v'.$i;   
echo $v;    // afiseaza $obj->v1. Cum obtin efectiv valoarea variabilei?
}
?>
Cum obtin in bucla valoarea efectiva a variabile $v? Adica la echo $v sa afiseze x apoi y. Functia eval() nu functioneaza in acest caz.

andras Mesaje: 430
Am gasit raspunsul:

Cod: Selectaţi tot

<?php
for ($i==1; $i<=$obj->vcimpuri; $i++){
$v= 'v'.$i;
echo $obj->$v;  // afiseaza x apoi y
}
?>

MarPlo Mesaje: 4343
Salut
O alta metoda e sa folosesti acoladele {}, ca in acest exemplu:

Cod: Selectaţi tot

for($i=1; $i<=$obj->vcimpuri; $i++){
  echo $obj->{'v'. $i};
} 
Sau, in loc de $v1, $v2; poti face $v un array; e mai simplu si usor in astfel de situatii.

Cod: Selectaţi tot

$obj->v =['x', 'y'];
$obj->vcimpuri = count($obj->v);
for($i=0; $i<$obj->vcimpuri; $i++){
  echo $obj->v[$i];  // afiseaza x apoi y
} 

andras Mesaje: 430
Am facut cum ai spus (array in clasa) si acum e mult mai bine.

Subiecte similare