základy php -k8凯发
-
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ř:
....
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.