Systémové (integrované) funkce

Systémové (integrované) funkce

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.

Funkce pro práci s čísly

<?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.

Funkce pro práci s řetězci

<?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.

Funkce pro práci s polem

<?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 vracející logickou hodnotu

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;
}

?>

Funkce pro datum a čas

<?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