PHP

Web o webu

Základy PHP

Proměnné

Před názvem proměnné je v php vždy uveden $, např. $nazev, $cenaBezDPH, $x1, $pocet_ks

Název proměnné může být složen z malých i velkých pímen bez diakritiky, z číslic (číslice nesmí být na začátku) a podtržítka (znak _ ). PHP je case senzitivní, tzn. rozlišují se malá a velká písmena ($pocetobyvatel je jiná proměnná než $pocetObyvatel i než $PocetObyvatel).

Výpis textu a proměnných

  • Výpis textu
    echo "Nejprodávanější zboží";           //výpis textu
    echo "<h1>Nejprodávanější zboží</h1>";  //výpis včetně html značek
    

    Pro odřádkování výsledného html kódu použijeme \n:

    echo "<h1>Nejprodávanější zboží</h1>\n"; //odřádkování html kódu
    
  • Výpis proměnné:
    echo $cena;  //výpis proměnné
    
  • Výpis textu a proměnné:
    echo "<h1>Nejprodávanější zboží s cenou od $cena</h1>";
          // jednoduchou proměnnou lze do řetězce vložit přímo
    echo "<h1>Nejprodávanější zboží s cenou od {$zaznam["cena"]}</h1>";
          // proměnnou typu pole lze do řetězce vložit pomocí složených závorek
    echo "<h1>Nejprodávanější zboží s cenou od ".round($zaznam["cena"])."</h1>";
          // funkci nelze do řetězce vložit - pouze připojit pomocí tečky
          // stejně tak lze připojit pomocí tečky i proměnné
    
  • Hodnoty parametrů html značek:
    echo "<a href='podminky.php'>obchodní podmínky</a>";
          // html parametry lze zapsat v jednoduchých apostrofech
    echo "<a href=\"podminky.php\">obchodní podmínky</a>";
          // parametry v uvozovkách se zpětným lomítkem
    echo '<a href="podminky.php">obchodní podmínky</a>';
          // parametry v uvozovkách, celý řetězec v apostrofech - nevhodné!
    //je-li řetězec v apostrofech nelze použít \n a nelze přímo vkládat proměnné
    

Pole

  • Pole je standartně indexováno od 0:
    $cisla = array(10,20,7,11);

    Vzniknou tak proměnné $cisla[0]=10; $cisla[1]=20; $cisla[2]=7; $cisla[3]=11;

  • Můžeme vytvořit pole s indexy od 1:
    $mesic = array(1=>"leden","únor","březen","duben","květen","červen",
              "červenec","srpen","září","říjen","listopad","prosinec");
  • Indexy nemusí tvořit souvislou řadu - pole s indexy 5, 13, 21:
    $akce = array(5=>"divadlo", 13=>"výlet", 21=>"kino");
  • Indexy nemusí být jen čísla - pole s řetězcovými indexy:
    $jmena = array("RS"=>"Reslová", "RP"=>"Rupert", "BO"=>"Bohatý");

    Vzniknou tak proměnné $jmena["RS"]="Reslová"; $jmena["RP"]="Rupert"; $jmena["BO"]="Bohatý";

    Výpis hodnoty proměnné typu pole provedeme příkazem echo - viz výše.

    Do textového řetězce ohraničeného uvozovkami (ne jednoduchými apostrofy) vložíme proměnnou typu pole tak, že ji uzavřeme do složených závorek.

    echo "<p>Jméno uživatele: {$jmena["RS"]}</p>";
    // proměnnou typu pole lze do řetězce vložit pomocí složených závorek
    

Funkce pro práci s poli

  • count - počet prvků (hodnot) pole
    $pocetCisel = count($cisla);   //  4
    $pocetMesicu = count($mesic);  // 12
    $pocetJmen = count($jmena);    //  3
    
  • in_array - zjistí, zda je zadaná hodnota v poli (true)
    $x = rand(1,30);  //náhodné číslo od 1 do 30
    if(in_array($x,$cisla)) {echo "Číslo $x je v poli";}
    else {echo "Číslo $x není v poli";}
    
  • sort - setřídí pole vzestupně, rsort - sestupně,
    asort - vzestupně se zachováním indexů, arsort - sestupně se zachováním indexů,
    ksort - podle klíčů (indexů)
    sort($cisla);   // 7, 10, 11, 20
    sort($jmena);   // 0 -> Bohatý  | 1 -> Reslová  | 2 -> Rupert   |
    asort($jmena);  // BO -> Bohatý | RS -> Reslová | RP -> Rupert  |
    ksort($jmena);  // BO -> Bohatý | RP -> Rupert  | RS -> Reslová |
    
  • list
    list($a, $b, $c, $d) = $cisla;
        //načte hodnoty pole do jednoduchých proměnných
    
  • each - načte hodnotu, případně také index prvku pole a posune ukazatel dál
    reset($jmena);  //nastaví ukazatel čtení na začátek pole
    while(list($zkratka, $jmeno) = each($jmena)) {
        //načte index a hodnotu pole do proměnných
        echo "$zkratka - $jmeno";
    }
    

    Vypíše se RS - Reslová, RP - Rupert, BO - Bohatý

  • foreach - cyklus pro procházení pole
    reset($jmena);  //nastaví ukazatel čtení na začátek pole
    foreach($jmena as $zkratka => $jmeno) {
        //načte index a hodnotu pole do proměnných
        echo "$zkratka - $jmeno";
    }
    

    Vypíše se RS - Reslová, RP - Rupert, BO - Bohatý

    Nepotřebujeme-li indexy, zapíšeme cyklus takto:

    foreach($jmena as $jmeno) {
        //načte hodnotu pole do jednoduché proměné
        echo $jmeno;
    }
    

    Vypíše se Reslová, Rupert, Bohatý