<?
$cislo1 = 105546;
$cislo2 = 98656;
$cislo3 = 656444;
$cislo4 = 65786797;
...
for ($i=0;$i<5;$i++)
echo $cislo$i;
?>
Asi jste pochopili co by to mnělo být. Mám prostě mnoho promněných s názvem, který se liší jen v číslici. "echo $cislo$i" by mělo být ulehčení abych nemusel vypisovat:
echo $cislo1;
echo $cislo2;
echo $cislo3;
...
-jenže echo $cislo$i nefunguje jak by to tedy šlo udělat jinak.
Moc děkuji.
echo $cislo$i je jasne spatne.
zkus
echo "$cislo$i";
nebo
echo $cislo.$i;
Bohužel nic nefunguje. :-(
ja bych napsal
$nazev='cislo'.$i;
echo $$nazev;
Jinak na jeden řádek by to možna šlo zkrátit takto
echo $('cislo'.$i);
>> Mám prostě mnoho promněných s názvem, který se liší jen v číslici.
v takovych pripadech se vetsinou pouziva pole...
manual:
Proměnné s proměnnými názvy
Někdy je vhodné, aby se názvy proměnných mohly měnit, tj. aby mohly být dynamicky nastavovány a používány. Normální proměnná se nastavuje takovýmto konstruktem:
$a = "ahoj";
Proměnná s proměnným názvem vezme hodnotu proměnné a použije ji jako název proměnné. Ve výše uvedeném příkladu, ahoj lze použít jako název proměnné uvedením dvou symbolů dolaru:
$$a = "světe";
V této chvíli byly definovány dvě proměnné a byly uloženy do stromu symbolů PHP: $a s obsahem "ahoj" a $ahoj s obsahem "světe". Proto konstrukt:
echo "$a ${$a}";
provede přesně totéž jako:
echo "$a $ahoj";
tedy oba vyprodukují: ahoj světe.
Při použití proměnných s proměnnými názvy s poli musíte vyřešit problém víceznačnosti. Tj. když napíšete $$a[1], parser potřebuje vědět, máte-li na mysli použití $a[1] jako proměnné nebo chcete $$a jako proměnnou a potom index [1] v této proměnné. Syntaxe pro řešení této víceznačnosti je ${$a[1]} pro první případ a ${$a}[1] pro druhý.
Ajo, já jsem to nečetl pořádně.
A co tak použít pole?