Funkce PHP
Skutečná síla PHP pochází z jeho funkcí.
PHP má více než 1000 vestavěných funkcí a navíc si můžete vytvářet vlastní funkce.
Vestavěné funkce PHP
PHP má více než 1000 vestavěných funkcí, které lze volat přímo ze skriptu k provedení konkrétního úkolu.
Úplný přehled vestavěných funkcí PHP naleznete v naší referenci PHP .
Uživatelsky definované funkce PHP
Kromě vestavěných funkcí PHP je možné vytvářet vlastní funkce.
- Funkce je blok příkazů, který lze v programu použít opakovaně.
- Funkce se při načtení stránky nespustí automaticky.
- Funkce bude vykonána voláním funkce.
Vytvořte uživatelem definovanou funkci v PHP
Uživatelem definovaná deklarace funkce začíná slovem function
:
Syntax
function functionName()
{
code to be executed;
}
Poznámka: Název funkce musí začínat písmenem nebo podtržítkem. Názvy funkcí NErozlišují velká a malá písmena.
Tip: Dejte funkci název, který odráží to, co funkce dělá!
V níže uvedeném příkladu vytvoříme funkci s názvem "writeMsg()". Úvodní složená závorka ( { ) označuje začátek kódu funkce a závěrečná složená závorka ( } ) označuje konec funkce. Funkce vydá "Ahoj světe!". Chcete-li funkci zavolat, stačí napsat její název následovaný závorkami ():
Příklad
<?php
function writeMsg() {
echo "Hello world!";
}
writeMsg(); // call the function
?>
Argumenty funkce PHP
Informace lze funkcím předávat pomocí argumentů. Argument je jako proměnná.
Argumenty jsou uvedeny za názvem funkce v závorkách. Můžete přidat tolik argumentů, kolik chcete, stačí je oddělit čárkou.
Následující příklad má funkci s jedním argumentem ($fname). Když je zavolána funkce familyName(), předáme také jméno (např. Jani) a jméno se použije uvnitř funkce, která vygeneruje několik různých křestních jmen, ale stejné příjmení:
Příklad
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
Následující příklad má funkci se dvěma argumenty ($fname a $year):
Příklad
<?php
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
?>
PHP je volně psaný jazyk
Ve výše uvedeném příkladu si všimněte, že jsme PHP nemuseli říkat, o jaký datový typ se jedná.
PHP k proměnné automaticky přiřadí datový typ v závislosti na její hodnotě. Vzhledem k tomu, že datové typy nejsou nastaveny v přísném smyslu, můžete dělat věci, jako je přidání řetězce k celému číslu, aniž byste způsobili chybu.
V PHP 7 byly přidány deklarace typu. To nám dává možnost zadat očekávaný datový typ při deklaraci funkce a přidáním strict
deklarace vyvolá „Fatal Error“, pokud se datový typ neshoduje.
V následujícím příkladu se pokusíme odeslat do funkce číslo i řetězec bez použití strict
:
Příklad
<?php
function addNumbers(int $a, int $b) {
return $a
+ $b;
}
echo addNumbers(5, "5 days");
// since strict is NOT enabled "5 days" is
changed to int(5), and it will return 10
?>
Pro specifikaci strict
musíme nastavit declare(strict_types=1);
. Toto musí být na prvním řádku souboru PHP.
V následujícím příkladu se snažíme do funkce poslat číslo i řetězec, ale zde jsme přidali strict
deklaraci:
Příklad
<?php declare(strict_types=1); // strict requirement
function
addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5
days");
// since strict is enabled and "5 days" is not an integer, an
error will be thrown
?>
Deklarace strict
nutí věci používat zamýšleným způsobem.
Výchozí hodnota argumentu PHP
Následující příklad ukazuje, jak použít výchozí parametr. Pokud zavoláme funkci setHeight() bez argumentů, převezme výchozí hodnotu jako argument:
Příklad
<?php declare(strict_types=1); // strict requirement
function setHeight(int $minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // will use the default value of 50
setHeight(135);
setHeight(80);
?>
PHP funkce - Vracení hodnot
Chcete-li, aby funkce vrátila hodnotu, použijte return
příkaz:
Příklad
<?php declare(strict_types=1); // strict requirement
function sum(int $x,
int $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
PHP prohlášení o typu návratu
PHP 7 také podporuje deklaraci typu pro return
příkaz. Stejně jako u deklarace typu pro argumenty funkcí, povolením striktního požadavku vyvolá „závažnou chybu“ při neshodě typu.
Chcete-li deklarovat typ pro návrat funkce, přidejte při deklaraci funkce dvojtečku (
:
) a typ těsně před otevírací složenou ( {
) závorku.
V následujícím příkladu určíme návratový typ funkce:
Příklad
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2);
?>
Můžete zadat jiný návratový typ než typy argumentů, ale ujistěte se, že návrat je správný:
Příklad
<?php declare(strict_types=1); // strict requirement
function addNumbers(float
$a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2);
?>
Předávání argumentů odkazem
V PHP se argumenty obvykle předávají hodnotou, což znamená, že ve funkci je použita kopie hodnoty a proměnnou, která byla do funkce předána, nelze změnit.
Když je argument funkce předán odkazem, změny argumentu také změní proměnnou, která byla předána. Chcete-li změnit argument funkce na odkaz, použije se &
operátor:
Příklad
K aktualizaci proměnné použijte argument pass-by-reference:
<?php
function add_five(&$value) {
$value += 5;
}
$num
= 2;
add_five($num);
echo $num;
?>