-
Komentáře
- jednořádkové - #, //
víceřádkové - /* ... */
-
Výstup
- echo - vrací void
- print - vrací boolean, trošku pomalejší
- printf - to samé jako print, akorát navíc argument format pro formátování
- sprintf - to samé jako printf, akorát se nepředá na výstup, ale přiřadí se nějakému řetězci
-
Složené datové typy
- Pole - shromažďuje podobné prvky dohromady, umožňuje je uspořádat a odkazovat se na ně specifickým způsobem
- Objekt - deklarován explicitně, deklarace uvnitř třídy class, z ní se pak pomocí new vytvoří objekt (instance)
-
Speciální datové typy
- Resource - handle jsou tímto typem a drží ukazatel na připojené zařízení
- Null - rozpoznává jedinou hodnotu Null, hodnota není nebo chybí - bylo nastavenou na žádnou hodnotu, byla ji přiřazena hodnota Null, byla odstraněna pomocí funkce unset()
-
Přetypování
- (typ)$promenna
- Jakýkoliv datový typ lze převést na objekt, proměnná se stane atributem objektu a atribut bude mít název scalar.
-
$celkem = "45 něčeno";
$prijizdi = 10;
$celkem = $prijizdi + $celkem; // $celkem = 55
- protože $celkem začíná celým číslem - kdyby nezačínalo, tak se vezme 0
- settype(promenna, typ) - vraci true nebo false
- gettype(promenna) - vraci typ promenne
- is_double(promenna)
-
Identifikátory
- - začínat písmem nebo podtržítkem
- rozlišuje se velikost písmen
-
Proměnné
- Přiřazení hodnotou - $barva = "červená";
- Přiřazení odkazem - vytvoříme proměnnou, která se odkazuje na stejný obsah jako nějaká jiná proměnná
$hodnota1 = "Ahoj";
$hodnota2 =& $hodnota1;
$hodnota2 = "Nashle";
// obe hodnoty obsahují "Nashle"
-
Obor proměnné
- Lokální proměnné - deklaruje se uvnitř nějaké fce, dá se na ní odkazovat pouze uvnitř této fce, jakékoliv přiřazení vně se bude považovat za zcela jinou proměnnou
- Parametry funkce - argumenty v záklaví fce, nejsou dostupné jakmile práce fce skončí
- Globální proměnné - můžeme k nim přistupovat v kterékoliv části programu, chceme-li nějakou fci modifikovat, musíme ji explicitně deklarovat jako globální v té fci, kde má být modifikována - pomocí GLOBAL
- Statické proměnné - při ukončení fce sbou hodnotu neztratí a bude ji stále mít až se fce zavolá znovu, klíčové slovo STATIC
UŽITEČNÉ U REKURSIVNÍCH FUNKCÍ
-
Superglobální proměnné
- $_SERVER - obsahuje informace, které vytvoří webový server
$_SERVER['HTTP_REFERER']
$_SERVER['REMOTE_ADDR']
$_SERVER['REQUEST_URI'] - část URL vyjadřující cestu
$_SERVER['HTTP_USER_AGENT']
- $_GET
- $_POST
- $_COOKIE - nastavené pomocí fce setcookie()
- $_FILES - informace o datech, která byla na server nahrána metodou post, jedná se o 2 rozměrné pole s 5 prvky
$_FILES['upload_name']['name'] - původní název souboru klienta
$_FILES['upload_name']['type'] - MIME typ, záleží na schopnostech prohlížeče
$_FILES['upload_name']['size']
$_FILES['upload_name']['tmp_name'] - dočasný název na serveru než se presune na finální umístěni
$_FILES['upload_name']['error'] - stavový kód nahrání
UPLOAD_ERR_OK - úspěšně se nahrál
UPLOAD_ERR_INI_SIZE - velikost přesáhla max povolenou velikost, která byla nastavena direktivou upload_max_filesize
UPLOAD_ERR_FORM_SIZE - velikost přesáhla povolenou velikost, kterou stanovil volitelný parametr MAX_FILE_SIZE skrytého pole formuláře
UPLOAD_ERR_PARTIAL - nahrála se jen část souboru
UPLOAD_ERR_NO_FILE - v nahrávacím formuláři nebyl specifikován název souboru
- $_ENV - informace týkající se podkladového serverového prostředí
$_ENV['HOSTNAME'] - hostitelský název serveru
$_ENV['SHELL'] - systémový shell
- $_REQUEST - zachycuje všecko možné, zaznamenává proměnné předávané do skriptů, není bezpečné
- $_SESSION - obsahuje infotmace týkající se všech proměnných sezení
- $GLOBALS - obsahuje výpis všech proměnných s globálním oborem, dostaneme se k nim pomocí print_r($GLOBALS);
-
Proměnné proměnné
- $recept = "špagety";
$$recept = " a masové kuličky";
print $recept.$špagety;
print $recept.${$recept};
// obě vypíší "špagety a masové kuličky"
-
Konstatny
- - nejde je modifikovat v průběhu programu
- definují se fcí define()
- bool define(nazev, hodnota, case-insensitive (nepovinný));
- odkaz na ní nezačíná dolarem
- konstanty jsou globální
-
Operátory
- +=, *=, /=, .=
- = má asociativitu zprava doleva
-
++$a vs. $a++
- $oldInv = $inv++; // do oldInv se přiřadí hodnota $inv a teprve pak se k $inv přičte 1
- $origInv = ++$inv; // přičte se 1 k $inv a pak se $inv přiřadi k $origInv
- Ternární operátor: ($a == 12) ? 5 : -1 // rovná-li se a 12, návratová hodnota 5, jinak -1
-
Řetězce
-
Uvozovky ""
- Parser zvládne patřičné proměnné i řídící znaky.
-
Apostrofy ''
- Řetězec se bude interpretovat přesně tak jak je je napsaný.
-
heredoc
- Pro vypsání většího množství textu. Nemusíme řetězec uzavírat do uvozovek ani apostrofů.
- Př:
<?
$website = "aa";
echo <<<NASNAZEV
<p>....<a href="$website">...</a>
NASNAZEV;
?>
- Otevírací i zavírací identifikátory musejí být identické.
Dodržuje pro parser stejná pravidla, jaká platí u řetězců v uvozovkách.
Uzavírací identifikátor musí začínat úplně na začátku řádku.
-
Řídící struktury
-
Declare
- Příkazem declare se určuje frekvence vykonávání specifického bloku kódu.
-
Switch
- switch($promenna) {
case "aaa":
echo "bbb";
break;
default:
echo "ccc";
}
-
do { ... } while(...)
- Provede se alespoň jednou.
-
Foreach (pro procházení polí)
- foreach ($pole as $hodnota) { echo $hodnota; }
- foreach ($pole as $klic => $hodnota) { echo $klic.$hodota; }
-
Break
- Okamžitě se ukončí vykonávání bloku (do, while, for, foreach, switch).
-
Continue
- Ukončí vykonávání aktuální iterace a pokračuje se zahájením další iterace.
-
Vkládání souborů
-
include()
- Vloží soubor přesně na to místo, kde je tento výraz.
- V podmínce musí být vždy obklopeno {}.
- Kód nalezený ve vkládaném souboru zdědí obor proměnných podle umístění svého volajícího.
- include_once()
-
require()
- 1. Soubor se vždy vloží do skriptu bez ohledu na to, kde je jeho volání (např. i v podmínce, která bude false).
- 2. Vykonávání skriptu se zastaví, jestliže require() selže.