Eli olen tässä aloitellut PHP:tä ja nyt en jostain syystä saa tätä koodinpätkää toimimaan:
<?php $arvot = array("tuhoisa", "kurja", "kehno", "heikko", "välttävä", "kelvollinen", "hyvä", "erinomainen", "mahtava", "loistava", "häikäisevä", ); $taidot = array("Kestävyys", "Maalivahti", "Pelinrakennus", "Puolustus", "Laituri", "Maalinteko"); $pelaaja = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", ); echo "Pelaaja " . $pelaaja[0] . ":lla on"; echo $arvot[2] . "ja" . $taidot[0]; $arvot[8]; if ($arvot < 6); echo "anna potkut"; elseif ($arvot == 6); echo "en tiedä"; elseif ($arvot > 6); echo "pidä vaan"; ?>
Ruutuun tulee vain teksti: "Parse error: parse error, unexpected T_ELSEIF in /srv/www/htdocs/matias/tacb/testausta.php on line 18"
Ongelma on tämäkin varsin yksinkertainen
mutta voisiko joku pro auttaa, mikä tuossa ei toimi?
Puolipistettä ei tule if- ja elseif-rivien loppuun. Jos ehtoon kuuluu useampia lauseita, kirjoita ne aaltosulkujen ({ ja }) sisään.
Antti Laaksonen kirjoitti:
Puolipistettä ei tule if- ja elseif-rivien loppuun. Jos ehtoon kuuluu useampia lauseita, kirjoita ne aaltosulkujen ({ ja }) sisään.
Joo, juuri selvisi kun katsoin PHP-opastasi...
Lisäksi koodissa on joitakin outouksia kuten:
$arvot[8];
Tämä ei tee mitään, oliko tarkoitus kenties laittaa $arvot = $arvot[8]; ?
Jos ylläolevaan kysymykseen vastaus on ei, on seuraava outous tässä
if ($arvot > 6)
$arvot on nyt taulukko, etkä voi verrata taulukkoa kokonaislukuun vaan sinun tulee verrata taulukon alkiota kokonaislukuun tyyliin
if ($arvot[8] > 6)
Tarkoitus on, että pelaajan $arvot:n ollessa tuhoisa (eli 0) tulostetaan teksti "paska pelaaja", pelaajan $arvot:n ollessa kurja (eli 1) tulostetaan teksti "huono pelaaja" jne.
<?php $arvot = array("tuhoisa", "kurja", "kehno", "heikko", "välttävä", "kelvollinen", "hyvä", "erinomainen", "mahtava", "loistava", "häikäisevä" ); $taidot = array("kestävyys", "maalivahti", "pelinrakennus", "puolustus", "laituri", "maalinteko"); $pelaaja = array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", ); echo "<b>Pelaaja " . $pelaaja[0] . "</b>:lla on "; echo $arvot[0] . " " . $taidot[0]; ?> <br> <?php echo "Hän on siis "; if ($arvot[0]) echo "paska pelaaja"; elseif ($arvot[1]) echo "huono pelaaja"; elseif ($arvot[2]) echo "kehno pelaaja"; elseif ($arvot[3]) echo "heikko pelaaja"; elseif ($arvot[4]) echo "kelpo pelaaja"; elseif ($arvot[5]) echo "hyvä pelaaja"; else echo "mahtava pelaaja"; echo "."; ?>
Olen sitten alle 15-v, joten älkää yliarvioiko minua, logiikka ei ole apunani;)
Tuleeko noista $arvot[ ] jutuista boolean-arvoja, eli ne kaikki ovat true tuossa if-rakenteessani?
Biotank kirjoitti:
Tuleeko noista $arvot[ ] jutuista boolean-arvoja, eli ne kaikki ovat true tuossa if-rakenteessani?
Oikein hoksattu.
Jos $arvot-taulukossa olevat adjektiivit kuvastavat suoraan vastaavia pelaajia $pelaaja-taulukossa (A on tuhoisa, B kurja jne.), voit kirjoittaa näin:
echo "Hän on siis " . $arvot[0] . " pelaaja.";
Tietysti nollan tilalle pannaan esiteltävän pelaajan numero.
Aihe on jo aika vanha, joten et voi enää vastata siihen.