Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Muuttuja muuttujan nimeen

Hakoulinen [01.09.2007 00:02:19]

#

Eli siis tarvisi saada kertalaskuri for-lausekkeessa yhdistettyä muuttujan nimeen.
Esim.

for($i=0;$i<5;$i++) {

$muuttuja$j = $j;

}

FooBat [01.09.2007 00:14:13]

#

Avainsana on taulukot:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj2
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=phpj3

Antti Laaksonen [01.09.2007 00:14:48]

#

Laita tämä silmukan sisään:

$nimi = "$muuttuja$i";
$$nimi = $i;

Kaksi dollarimerkkiä muuttujan alussa tarkoittaa, että muuttujan nimi haetaankin toisesta muuttujasta.

Mutta kannattaisikohan sinun käyttää mieluummin taulukkoa?

T.M. [01.09.2007 00:17:04]

#

Vaihtoehtoinen tapa:

${"muuttuja$j"} = $j;

Antti Laaksonen [01.09.2007 00:30:33]

#

Olikohan muuten tarkoitus, että muuttujan nimen alkuosa on "muuttuja" vai muuttujassa $muuttuja oleva merkkijono? Minä tulkitsin asian jälkimmäisellä tavalla, mutta T.M.:n tulkinta vaikuttaa järkevämmältä. Kysymys on kylläkin vain yhdestä dollarimerkistä molemmissa koodeissa.

Taulukot ovat kuitenkin varmaan paras ratkaisu ongelmaan. Silloin taulukon alkion määrittävä indeksi, joka voi olla muuttuja tai pelkkä luku, laitetaan hakasulkujen sisään taulukon nimen jälkeen. Yksi taulukon alkio on kuin yksi tavallinen muuttuja. Tässä tapauksessa taulukkoon tulee viisi alkiota: $taulu[0], $taulu[1], $taulu[2], $taulu[3] ja $taulu[4].

for ($i = 0; $i < 5; $i++) {
    $taulu[$i] = $i;
}
echo $taulu[2];

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta