2024. október 7., hétfő

13 B - Elvis helyett használjuk a Ninja operátort

 


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

Norway_info Laravel REST API Jetstreammel (Livewire + MySQL)

Készítsünk egy olyan Laravel REST API-t, amely egy contents nevű adatbázistábla adatait kezeli (Create, Read, Update, Delete), és amelyet P...