Funkcijas ļauj grupēt kodu atkārtoti izmantojamos blokos. Tā vietā, lai rakstītu vienu un to pašu kodu vairākas reizes, to ievieto funkcijā un izsauc, kad nepieciešams.

Funkcijas definēšana

<?php
function sveiciens() {
echo "Sveika, pasaule!";
}

sveiciens(); // Sveika, pasaule!
sveiciens(); // Sveika, pasaule!
?>

Parametri

Funkcijām var padot vērtības (parametrus):

<?php
function sveicināt($vards) {
echo "Sveiks, $vards!";
}

sveicināt("Jāni"); // Sveiks, Jāni!
sveicināt("Anna"); // Sveiks, Anna!
?>

Noklusētās vērtības

<?php
function sveicināt($vards, $uzruna = "Sveiks") {
echo "$uzruna, $vards!";
}

sveicināt("Jāni"); // Sveiks, Jāni!
sveicināt("Anna", "Labdien"); // Labdien, Anna!
?>

Atgriežamā vērtība (return)

<?php
function saskaitīt($a, $b) {
return $a + $b;
}

$summa = saskaitīt(5, 3);
echo $summa; // 8

// Var izmantot tieši
echo saskaitīt(10, 20); // 30
?>

Tipu norādīšana (PHP 7+)

Modernajā PHP var norādīt parametru un atgriežamās vērtības tipus:

<?php
function dalīt(float $a, float $b): float {
if ($b == 0) {
return 0;
}
return $a / $b;
}

echo dalīt(10, 3); // 3.333...
?>

Pieejamie tipi: int, float, string, bool, array, void (neko neatgriež), ?string (string vai null).

Mainīgo redzamība (scope)

Mainīgie, kas definēti ārpus funkcijas, nav pieejami funkcijas iekšienē (un otrādi):

<?php
$globālais = "Es esmu ārpusē";

function tests() {
// echo $globālais; // Kļūda! Mainīgais nav pieejams
$lokālais = "Es esmu iekšā";
echo $lokālais;
}

tests();
// echo $lokālais; // Kļūda! Mainīgais nav pieejams
?>

Anonīmās funkcijas (closures)

<?php
$sveiciens = function($vards) {
return "Sveiks, $vards!";
};

echo $sveiciens("Jāni"); // Sveiks, Jāni!

// Bieži izmanto ar masīvu funkcijām
$skaitļi = [1, 2, 3, 4, 5];
$dubulti = array_map(function($n) {
return $n * 2;
}, $skaitļi);
// [2, 4, 6, 8, 10]
?>

Bultiņu funkcijas (PHP 7.4+)

Saīsināts pieraksts vienkāršām funkcijām:

<?php
$dubulti = array_map(fn($n) => $n * 2, [1, 2, 3]);
// [2, 4, 6]
?>

Iebūvētās funkcijas

PHP piedāvā simtiem iebūvētu funkciju. Dažas noderīgākās:

<?php
// Matemātikas
echo abs(-5); // 5
echo round(3.7); // 4
echo rand(1, 100); // nejaušs skaitlis 1-100

// Datums/laiks
echo date('d.m.Y'); // 26.02.2026
echo time(); // pašreizējais laika zīmogs

// Informācija
echo strlen("teksts"); // 6 (virknes garums)
echo count([1, 2, 3]); // 3 (masīva elementu skaits)
?>