Hvordan du bruker php null koalescing operatør

Hvordan du bruker php null koalescing operatør
Nulls samvirkende operatør (??), en av de nye funksjonene i Php 7, kan brukes som et alternativ til den ternære operatøren og Isset () funksjon. Det brukes til å sjekke om en verdi er tilordnet en variabel, og den returnerer en standardverdi når ingen verdi er definert for en variabel. Denne operatøren kan også brukes til å se om $ _GET [] og $ _POST [], som mottar brukerinnganger, er angitt. Videre kan den sjekke verdien av mer enn en variabel via kjetting.

I denne artikkelen diskuteres forskjellene mellom de ternære og nulls koalescing -operatørene, og nullkoalescing -operatøren brukes som et alternativ til den ternære operatøren og Isset () funksjon.

Sammenligning av den ternære operatøren og nulls samvittighetsoperatør

De viktigste forskjellene mellom den ternære operatøren og nullkoalescing -operatøren er beskrevet nedenfor.

  1. Mens den nullkoalescerende operatøren kan brukes til å sjekke verdiene til to eller flere variabler via kjetting, brukes den ternære operatøren til å angi verdier for de to variablene basert på en tilstand.
  2. Mens den nullkoalescerende operatøren kan sjekke for nullverdier og ikke genererer en e-varsel, kan ikke den ternære operatøren se etter nullverdier og genererer en e-varsel for en nullverdi.
  3. NULL -koalescingoperatøren returnerer verdien på variabelen hvis den variabelen inneholder en verdi og ikke er null; Den ternære operatøren returnerer verdien fra venstre for tykktarmen hvis tilstanden er sann og fra tykktarmens rett hvis tilstanden er falsk.
  4. NULL -koalescerende operatør er mer lesbar enn den ternære operatøren.
  5. Den nullkoalescerende operatøren er raskere enn den ternære operatøren.

Bruke nullkoalescerende operatør

NULL -koalescerende operatør brukes i følgende eksempler.

Eksempel 1: Bruke nullkoalescerende operatør mellom to variabler

NULL -koalescerende operatør kan brukes med to eller flere variabler. I dette eksemplet brukes operatøren til å sjekke verdiene til forskjellige variabler.

// definere to variabler
$ var1 = 'Dette er den første strengverdien.';
$ var3 = 'Dette er den tredje strengverdien.';
$ var4 = null;
$ var5 = 'Dette er den femte strengverdien.';
$ var6 = ";
// sjekk verdien på variablene
$ resultat1 = $ var1 ?? $ var2;
ekko "

$ resultat1

";
// sjekk verdien på variablene
$ resultat2 = $ var2 ?? $ var3;
ekko "

$ Resultat2

";
// sjekk verdien på variablene
$ resultat3 = $ var4 ?? $ var5;
ekko "

$ resultat3

";
// sjekk verdien på variablene
$ resultat4 = $ var6 ?? $ var5;
ekko "

$ resultat4

";
?>

Følgende utgang vil bli generert ved å kjøre skriptet ovenfor. Verdien av $ var1 skrives ut i den første utgangen, verdien av $ var3 skrives ut i den andre utgangen (fordi $ var2 er udefinert), verdien av $ var5 skrives ut i den tredje utgangen (fordi $ var4 er null), og ingenting skrives ut for fjerde utgang (fordi $ var6 er tom).


Eksempel 2: Bruke nullkoalescing -operatøren for å sjekke $ _Get [] og $ _Post [] verdier

I dette eksemplet brukes nullkoalescing -operatøren som et alternativ til Isset () funksjon. Her brukes de to første operatørene til å sjekke verdien av $ _GET [] Array, og den tredje operatøren brukes til å sjekke $ _POST [] Array.

// sjekk navneverdien fra URL -argumentet
$ name = $ _get ['name'] ?? 'Ukjent';
// sjekk e -postverdien fra URL -argumentet
$ e -post = $ _get ['e -post'] ?? 'Ingen e -postadresse er funnet.';
// Kontroller telefonverdien i $ _POST -matrise og i $ _Get -array
$ telefon = $ _post ['telefon'] ?? $ _GET ['Telefon'] ?? 'Ingen telefonnummer funnet.';
// Skriv ut utgangen fra de tre variablene
ekko " Navn: $ navn
E -post: $ e -post
Telefon: $ telefon ";
?>

Følgende utgang vil bli generert ved å kjøre skriptet ovenfor uten å gi verdier for $ _Get ['name'], $ _get ['e -post'], $ _get ['telefon'] og $ _post ['telefon'].


Følgende utgang vil bli generert hvis du kjører skriptet med verdier for $ _GET ['NAVN'] og $ _GET ['E -post']. Når den tredje uttalelsen av skriptet utføres, er verdien av $ _POST ['Telefon'], som er udefinert, er sjekket. Neste, verdien av $ _GET ['Telefon'], som også er udefinert, blir sjekket. Derfor skrives standardverdien for den tredje utgangen.


Eksempel 3: Sammenligning av den ternære operatøren med den nulls koalescerende operatøren

I dette eksemplet brukes nullkoalescing -operatøren til å erstatte den ternære operatøren. Her brukes den ternære operatøren til å sjekke verdien av $ _Get ['n'], Og hvis variabelen inneholder en verdi, vil den lagre i variabelen $ nummer; Ellers vil den skrive ut udefinert. Den samme oppgaven gjøres ved å bruke den nullkoalescerende operatøren i den siste delen av skriptet.

ekko "Utgangen fra den ternære operatøren:
";
// ved hjelp av ternær operatør for å sjekke variabel
$ nummer = isset ($ _ get ['n']) ? $ _Get ['n']: "udefinert";
ekko "Verdien på n er $ nummer
";
ekko "Utgangen fra null koalescing operatør:
";
// Bruke nullkoalescerende operatør for å sjekke variabel
$ nummer = $ _get ['n'] ?? 'udefinert';
ekko "Verdien på n er $ nummer
";
?>

Følgende utgang vil bli generert hvis du kjører skriptet uten å gi verdier for $ _Get ['n']. Her sjekker den ternære operatøren om variabelen $ _Get ['n'] er satt. Utgangene til både den ternære operatøren og den nulls koalescerende operatøren er udefinert Fordi det er satt noen verdi for $ _Get ['n'].


Følgende utgang vil bli generert hvis du kjører skriptet med en verdi for $ _Get ['n']. Både den ternære operatøren og den nulls sammenføyningsoperatøren trykket verdien av $ _Get ['n'] gitt i nettadressen. Her er 100 tildelt for argumentet n.

Konklusjon

NULL -koalescerende operatør er en nyttig funksjon i PHP som kan brukes som et alternativ til den ternære operatøren og Isset () funksjon. Det er bedre enn den ternære operatøren fordi den er raskere og kan sjekke verdiene til flere variabler via kjetting, som vist i det andre eksemplet.

Videoopplæring