V PHP existuje velké množství systémových funkcí, jejich kompletní seznam naleznete v dokumentaci na https://www.php.net/manual/en/. V tomto článku shrnuji jen ty, se kterými se sám často setkávám. Systémové funkce se pokusím rozdělit do logických celků podle jejich účelu.
V anotaci vždy popíšu k čemu funkce slouží a v komentáři za výpisem funkce uvádím, co by funkce v konkrétním případě vypsala na stránku.
<?php
/**
* zaokrouhlení (matematické)
*/
$cislo = 10.6;
echo round($cislo); // 11
/**
* můžeme uvést i druhý parametr kterým řekneme,
* kolik desetinných míst chceme vypsat
*/
$cislo = 10.66666;
echo round($cislo, 2); // 10.67
/**
* zaokrouhlení dolů
*/
$cislo = 10.6;
echo floor($cislo); // 10
/**
* zaokrouhlení nahoru
*/
$cislo = 10.4;
echo ceil($cislo); //11
/**
* náhodné číslo
* pozor číslo je pseudo-náhodné
* existuje ještě mt_rand - lepší algoritmus
*/
$nahodneCislo = rand(1, 100);
echo $nahodneCislo; // vypíše náhodné číslo v rozmezí 1-100
/**
* mocnina
*/
echo pow(2, 3); //8
/**
* druhá odmocnina
*/
echo sqrt(9); //3
?>
Další matematické funkce naleznete na https://www.php.net/manual/en/ref.math.php.
<?php
/**
* první písmeno velké
*/
$retezec = "ahoj, jak se máš?";
echo ucfirst($retezec); // Ahoj, jak se máš?
/**
* velká písmena
* nepřevede české znaky
* pokud potřebujeme převést i české znaky, tak použijeme mb_strtoupper
*/
$retezec = "Ahoj, jak se máš?";
echo strtoupper($retezec); // AHOJ, JAK SE Máš?
echo mb_strtoupper($retezec); // AHOJ, JAK SE MÁŠ?
/**
* malá písmena
* nepřevede české znaky
* pokud potřebujeme převést i české znaky, tak použijeme mb_strtolower
*/
$retezec = "Ahoj, Jak se m�";
echo strtolower($retezec); // ahoj, jak se m�
echo mb_strtolower($retezec); // ahoj, jak se máš?
/**
* délka řetězce (počet znaků)
*/
$retezec = "Ahoj, jak se máš?";
echo mb_strlen($retezec); //17
/**
* nahrazení části řetězce
*/
$retezec = "Ahoj, jak se máš?";
echo str_replace("Ahoj", "Čau", $retezec); // Čau, jak se máš?
/**
* zkrácení řetězce
*/
$retezec = "Ahoj, jak se máš?";
echo mb_substr($retezec, 0, 7); //Ahoj, j
echo mb_substr($retezec, 10); //se máš?
?>
Další funkce pro práci s řetězci naleznete na https://www.php.net/manual/en/ref.strings.php. Zde je seznam těch, které umí pracovat s Unicode kódováním https://www.php.net/manual/en/ref.mbstring.php.
<?php
/**
* nejnižší hodnota
*/
$cisla = [10, 2, 4, 18, 3];
echo min($cisla); // 2
/**
* nejvyšší hodnota
*/
$cisla = [10, 2, 4, 18, 3];
echo max($cisla); // 18
/**
* počet prvků v poli
*/
$cisla = [10, 2, 4, 18, 3];
echo count($cisla); // 5
/**
* součet hodnot
*/
$cisla = [10, 2, 4, 18, 3];
echo array_sum($cisla); //37
/**
* takto může spočítat průměr známek
* a výsledek zaokrouhlit na jedno desetinné místo
*/
$znamky = [2, 3, 1, 4, 3, 5, 2, 1, 1];
$prumer = array_sum($znamky)/count($znamky);
echo "Průměr známek je: " . round($prumer, 2);
?>
Pro práci s polem existuje ještě velké množství dalších funkcí, například pro různé změny řazení prvků, jejich filtrování nebo třeba spojování více polí dohromady. S některými se ještě určitě setkáme v průběhu kurzu. Kompletní seznam naleznete na https://www.php.net/manual/en/ref.array.php.
Funkce, které nám vrací logické hodnoty true/false se nejčastěji využívají jako argument podmínky. Například pro ověření existence proměnné či klíče v poli.
<?php
/**
* je prvek v poli?
* true/false
*/
$taska = ["rohlíky", "máslo", "banány"];
if (in_array("okurky", $taska)) {
echo "Ano, okurky již v tašce jsou";
} else {
echo "Ne, okurky v tašce nejsou.";
}
/**
* existuje klíč v poli
* true/false
*/
$osoba = [
"jmeno" => "Standa",
"prijmeni" => "Kosáček",
];
if (array_key_exists("vek", $osoba)) {
echo $osoba["vek"];
}
/**
* ověření, jestli je proměnná nastavena
* true/false
*/
if (isset($nazev)) {
echo $nazev;
}
?>
<?php
/**
* takto vypíšeme aktuální datum a čas
*/
echo date("j. n. Y H:i"); // 18. 4. 2020 22:10
?>
Zde nám stačí ukázat si funkci date(), v průběhu kurzu si ukážeme lepší způsob, jak pracovat s datumem a časem. Dokumentaci k funkci date() naleznete na https://www.php.net/manual/en/function.date. Znaky pro formátování data a času můžete nají na https://www.php.net/manual/en/datetime.format.php