Deklaracja funkcji i jej wywołanie przedstawia się następująco:
<?php
function nazwa() {
instrukcje
}
nazwa();
?>
Wywołując funkcję w dowolnym miejscu strony spowodujemy jej wykonanie.
Możemy to wykorzystać wywołując dany fragment kodu wielokrotnie na stronie,
bądź dołączając plik z funkcjami wywoływać je na wielu stronach naszej witryny.
Najprostsze wywołanie funkcji:
<?php
function witaj() {
echo "Witaj świecie!";
}
witaj();
?>
Funkcja może przyjmować parametry wejściowe.
Są to przekazywane do wnętrza funkcji wartości, którymi możemy wewnątrz niej operować.
Parametry wejściowe funkcji podajemy wewnątrz nawiasu okrągłego.
<?php
function witaj($imie) {
echo "Witaj $imie";
}
witaj("Tomek");
witaj("Ania");
?>
Możemy równie podać więcej niż jeden parametr:
<?php
function pies($imie, $rasa) {
echo "Mój pies $imie to $rasa";
}
pies("Azor", "owczarek");
witaj("Fifi", "malamut");
?>
Możemy również ustawić domyślną wartość parametru wejściowego.
W przypadku, gdy podczas wywołania funkcji nie podamy jego wartości, zostanie wykorzystana wartość domyślna.
<?php
function ustawMin($min = 50) {
echo "Min wynosi $min";
}
ustawMin(100);
ustawMin();
ustawMin(200);
?>
<?php
function suma($a, $b) {
$suma = $a + $b;
return $suma;
}
echo suma(10, 20);
echo suma(0, 11);
echo suma(100, 200);
?>
Przykład:
<?php
function sum($a,$b):int {
return $a+$b;
}
echo sum(3.14,13.37); // 16
?>
<?php
function sum($a,$b) {
return $a+$b;
}
$dodaj = "sum";
echo $dodaj(12,5); // 17
Funkcję też możemy zapisać jako wartość zmiennej i wtedy będzie to funkcja anonimowa.
W wyżej wymienionym przypadku nie zapomnij o zakończeniu instrukcji używając ;.
<?php
$dodaj = function ($a,$b) {
return $a+$b;
};
echo $dodaj(12,5); // 17
Przykład:
Pamiętaj o tym, że tylko ostatni parametr funkcji może używać splat operator’a – gdyż wprowadzenie dalszych parametrów nie ma sensu,
ponieważ i tak nie zostaną one odczytane.
<?php
function sum(...$numbers) {
$sum = 0;
foreach($numbers as $number) {
$sum += $number;
}
return $sum;
}
echo sum(1,3,3,7); // 14
W poprzednich wersjach PHP korzystało się z funkcji func_get_args,
aby zrobić funkcję ze zmienną liczbą argumentów.
Ze splat operator’a możemy też skorzystać przesyłając tablice jako argument:
<?php
function sum(...$numbers) {
$sum = 0;
foreach($numbers as $number) {
$sum += $number;
}
return $sum;
}
$numbers[] = 1;
$numbers[] = 5;
echo sum(...$numbers); // 6