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ý