Miért Ninja? A dupla kérdőjel (
??
) olyan, mintha egy "ninja" gyorsan előbukkanna a semmiből, hogy egy alapértelmezett értéket helyettesítsen, ha valami nincs ott, vagyis "rejtve" marad. A ninja elnevezés egyfajta rejtett, gyors helyettesítésre utal. :-) persze adhattok neki jobb nevet is.Szóval a lényeg, amit már mutattam órán, a ??. A nullás egyesítési operátor (??
) (angolul: null coalescing operator) a PHP 7.0 verziójában került bevezetésre, amely 2015. december 3-án jelent meg. Az operátor célja az volt, hogy egyszerűbbé és rövidebbé tegye a kódot, különösen akkor, amikor egy változót ellenőrizni kell, hogy létezik-e vagy null
-e, és ha nem, akkor egy alapértelmezett értéket ad vissza.
Ez az operátor azzal a céllal jött létre, hogy egyszerűbbé tegye a változók ellenőrzését és alapértelmezett értékadását, amikor egy változó nem létezik, vagy null
értékkel rendelkezik.
Nézzük hol használhatjuk Elvis helyett:
$rendez = isset($_GET['rendez']) ? $_GET['rendez'] : "nev";
$kifejezes = isset($_POST['kifejezes']) ? $_POST['kifejezes'] : "";
Az isset()
itt azt ellenőrzi, hogy a $_GET['rendez']
és $_POST['kifejezes']
változók léteznek-e, és nem null
értékűek. Ha léteznek, akkor az értéküket használja, ha nem, akkor az alapértelmezett értéket ("nev"
vagy ""
) adja vissza. Ez a klasszikus ternáris, bocs Elvis operátor helyes használata.
Ninja operátorral:
$rendez = $_GET['rendez'] ?? "nev";
$kifejezes = $_POST['kifejezes'] ?? "";
A "??" operátor az ún. nullás egyesítési operátor, ami csak akkor működik jól, ha az adott változó valóban null vagy undefined. Az "isset()" függvény azonban ellenőrzi, hogy a változó létezik-e, és értékkel rendelkezik-e. Azonban az "isset()" függvényt és a "??" operátort nem kell együtt használni, mert a "??" magában is megoldja azt, amit az "isset()" tesz.
Nincsenek megjegyzések:
Megjegyzés küldése