You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
interpretovaný programovací jazyk spouštěný na straně serveru
aktuálně obvykle využívána řada 5.x
od prosince 2015 je k dispozici také verze 7
jednotlivé verze se řeší ve funkcionalitě, některé zastaralé funkce jsou postupně odstraňovány
PHP soubory mají obvykle příponu .php
nejčastěji je PHP využíváno ke generování textových výstupů (HTML, XML, JSON, plain text atp.), ale je možné generovat také jakýkoliv jiný obsah (PDF, obrázky), či mít skript, který na výstup nevrací nic
obvykle spouštěno přes webový server (typicky Apache)
vytvořený soubor nahrajeme na server a načteme přes prohlížeč
všechny proměnné jde poznat podle znaku $, kterým začíná jejich název
proměnné není nutné deklarovat, prostě rovnou přiřadíme do dané proměnné hodnotu
názvy proměnných
v názvu se smí vyskytovat pouze písmena, číslice a podtržítka
PHP rozlišuje velikost písmen v názvu proměnné
název musí začínat písmenem či podtržítkem
obvykle využíváme velbloudí nebo podtržítkovou notaci
PHP používá automatické přetypovávání čísel a řetězců
pozor na boolean hodnoty
jako false jsou vyhodnoceny proměnné s hodnotou false, null, 0, "" (prázdný řetězec)
všechny ostatní hodnoty jsou při přetypování na boolean vyhodnoceny jako true
$a = 10;
$b = '1';
echo$a + $b;
pozor, PHP hledá proměnné v kódu a řetězcích
zápis $$a bude vyhodnocen tím způsobem, že PHP nejprve nahradí $a textovou hodnotou dané proměnné (např. "b") a poté bude pracovat s výslednou proměnnou (např. $b)
název funkce může být uložen také v proměnné - např. $a() spustí funkci, jejíž název je uložen v proměnné $a
kromě implicitního přetypování lze v PHP samozřejmě vynutit i přetypování ruční
$x = intval($x); //dále např. floatval()$str = (string)$s;
$pole = (array)$objekt; //lze využít i pro přetypování pole na objekt (a naopak)
je samozřejmě možné zjistit, jestli je daná proměnná definována a také ji volitelně smazat (jako by nikdy definovaná nebyla)
$existuje = isset($a);//funkce isset zjistí, jestli je daná proměnná definována$prazdna = empty($a);//funkce empty zjistí, jestli je daná proměnná definována a není prázdná
unset($a); //smaže proměnnou $a
pro ladění se hodí také možnost nechat si vypsat informace o proměnné včetně jejího obsahu, či zastavit běh celého skriptu
var_dump($promenna); //vypíše obsah proměnnéexit(); //ukončí běh skriptu
pro pojmenování funkcí platí stejné podmínky, jako pro názvy proměnných (jen nezačínají znakem $)
funkce nemusejí být zabaleny v žádných třídách
u funkcí je podporována typová kontrola parametrů, pokud jimi mají být instance tříd
funkce mohou mít také volitelné parametry, které mají rovnou přiřazenou nějakou hodnotu
/** * Ukázková funkce * @param string $a * @param string $b="x" */functionmojeFunkce($a, $b="x"){
echo'hodnota A byla '.$a.', hodnota B byla '.$b;
}
návratová hodnota se vrací pomocí příkazu return
parametry funkcí jsou jen vstupní, pokud před jejich název nepřidáme znak & - pak je předávána reference místo hodnoty a danou proměnnou lze přepsat z těla funkce