A PHP 7.4-es verziójától kezdődően a programozók még nagyobb rugalmasságot és precizitást kaptak a típuskezelés terén az union típusok bevezetésével. Ezen kívül a szigorú típusok használatával biztosíthatjuk, hogy a függvényeink a várt típusú adatokat fogadják és adják vissza. Ez a cikk részletesen bemutatja, hogyan alkalmazzuk ezeket az eszközöket a PHP-ban, és hogyan segíthetnek a tisztább, hatékonyabb kód írásában.
Mi az a szigorú típus PHP-ban?
Alapértelmezés szerint a PHP „gyengén típusos” nyelv, ami azt jelenti, hogy automatikusan átalakítja a változók típusát, ha szükséges. Például:
function osszead($a, $b) { return $a + $b; } echo osszead(5, "10"); // Eredmény: 15
Ebben a példában a PHP automatikusan átalakította a „10” karakterláncot számmá. Ez néha hasznos lehet, de problémákhoz is vezethet, ha nem vagyunk óvatosak. A szigorú típusok bekapcsolásával biztosíthatjuk, hogy a függvények csak a megadott típusú paramétereket fogadják el.
A szigorú típusok bekapcsolása
A szigorú típusok használatához a fájl elejére kell helyeznünk a következő utasítást:
declare(strict_types=1);
Ezzel bekapcsoljuk a szigorú típusellenőrzést az adott fájlban. Nézzünk egy példát:
declare(strict_types=1); function osszead(int $a, int $b): int { return $a + $b; } echo osszead(5, "10"); // Hiba: A "10" nem egész szám.
A szigorú típusok bekapcsolásával a PHP szigorúan ellenőrzi a típusokat, és hibaüzenetet ad, ha egy paraméter nem a várt típusú.
Union típusok: több típus támogatása
A PHP 8.0-ban bevezetett union típusok lehetővé teszik, hogy egy változó vagy paraméter több különböző típusú értéket is elfogadjon. Ez különösen hasznos, ha egy függvény rugalmas típusokat igényel. Példa:
function osszeg(int|float $a, int|float $b): int|float { return $a + $b; } echo osszeg(5, 10.5); // Eredmény: 15.5
Az int|float
megadásával jeleztük, hogy a függvény elfogadja mind az egész, mind a lebegőpontos számokat, és ugyanilyen típusú értéket ad vissza.
Union típusok és null értékek
Az union típusok használatakor gyakran előfordulhat, hogy null értéket is támogatnunk kell. Ezt a null
kulcsszó hozzáadásával érhetjük el:
function koszonet(?string $nev): string { return $nev ? "Üdvözlünk, $nev!" : "Üdvözlünk, ismeretlen!"; } echo koszonet(null); // Eredmény: Üdvözlünk, ismeretlen!
A ?string
azt jelzi, hogy a paraméter lehet karakterlánc vagy null.
Videó bemutató: PHP szigorú típusok és Unionok függvényekben
Ha szeretnéd részletesebben megérteni a PHP szigorú típusok és union típusok használatát, nézd meg az alábbi videót:
Szigorú típusok és union típusok kombinálása
A szigorú típusok és az union típusok kombinálásával még robusztusabb kódot írhatunk. Példa:
declare(strict_types=1); function osszeg(?int $a, int|float $b): int|float { return $a ? $a + $b : $b; } echo osszeg(null, 5.5); // Eredmény: 5.5
Ebben a példában a függvény elfogadja a null értéket az első paraméterként, és megfelelően kezeli azt a számítás során.
Összegzés
A szigorú típusok és union típusok bevezetése a PHP-ban jelentősen javítja a kód minőségét és olvashatóságát. Használatukkal biztosíthatjuk, hogy a függvényeink a megfelelő típusú bemenetekkel dolgoznak, és minimalizálhatjuk a hibák előfordulásának esélyét. Ezek a modern PHP funkciók különösen hasznosak nagyobb projektek esetén, ahol a típusbiztonság és a kód tisztasága kiemelten fontos.