Nakon ovog poglavlja
Što ćete znati napraviti
- Deklarirati parametre, tip povrata i zadane vrijednosti.
- Pisati male funkcije bez skrivenog globalnog stanja.
- Koristiti anonimne i arrow funkcije za kratke transformacije.
Ime, ulaz, izlaz
Funkcija skriva jedan smislen postupak
Dobro ime opisuje rezultat ili radnju. Parametri su ulaz, return je izlaz. Tipovi služe kao izvršiv ugovor i dokumentacija. Funkcija koja računa ne bi trebala usput ispisivati HTML ili mijenjati globalnu varijablu.
<?php
function priceWithTax(int $netCents, float $rate = 0.25): int
{
$tax = (int) round($netCents * $rate);
return $netCents + $tax;
}
echo priceWithTax(10000);
Eksplicitni slučajevi
Opcionalno nije isto što i nepoznato
Zadana vrijednost koristi se kada argument nije poslan. Nullable tip poput ?string dopušta string ili null. Ako je null stvaran poslovni slučaj, obradite ga jasno. Previše opcionalnih parametara često pokazuje da funkcija radi više poslova.
<?php
function greeting(string $name, ?string $company = null): string
{
$suffix = $company === null ? '' : " iz tvrtke {$company}";
return "Pozdrav, {$name}{$suffix}!";
}
Male transformacije
Closure i arrow funkcije
Anonimnu funkciju možemo spremiti u varijablu ili predati drugoj funkciji. Arrow funkcija fn automatski hvata vanjske vrijednosti po vrijednosti i pogodna je za jedan izraz. Za složeniju logiku koristite imenovanu funkciju ili puni closure.
<?php
$prices = [1200, 2500, 990];
$withTax = array_map(
fn (int $price): int => priceWithTax($price),
$prices
);
Primijenite naučeno
Vježba: Formatiranje cijene
Izradite funkciju koja prima iznos u centima i vraća prikaz za hrvatsku lokalizaciju.
- Deklarirajte tip parametra i povratni tip.
- Provjerite ponašanje za nulu i negativan iznos.
- Odvojite računanje od HTML prikaza.
Za provjeru i nastavak