PHP 'isset' vs. 'tom'

Den "isset" og "tomme" fungerer både sjekk for eksistensen av data i en variabel, men returnerer motstridende resultater. Den isset funksjonen returnerer sann om det finnes data, og den tomme funksjonen returnerer true hvis data ikke eksisterer. Selv om begge funksjoner sjekk for data eksisterer, er de ikke eksakt motsetninger av hverandre. Hver funksjon bruker forskjellige kriterier når man skal avgjøre om det finnes data, med isset funksjonen være mer restriktiv enn den tomme funksjon. Ta deg tid til å forstå de spesifikke tilfeller hvor hver funksjon vil vurdere som sant eller usant, og bruk riktig funksjon basert på hva slags operasjon du utfører.

Den isset Funksjon

Den isset funksjonen returnerer false hvis en variabel er enten bestemt eller null; Ellers returneres sann. En variabel som inneholder en tom streng er ikke null, og heller ikke er en variabel som har blitt initialisert som en tom array. For eksempel:

echo isset ($ y); // falsk
$ Y = null;
echo isset ($ y); // falsk
$ Y = "";
echo isset ($ y); // sant

Den tomme Funksjon

Den tomme funksjonen er mindre restriktive enn isset funksjonen. Den returnerer true hvis en variabel er unset - udefinert eller null - og også returnerer true hvis en variabel er en tom streng, en tom array, falsk, null eller "0" Enhver annen verdi returnerer false.

Bruke isset

Når du bruker en matrise for å lagre en liste, og du ønsker å sjekke om en vare er på listen, får du en feilmelding hvis du prøver å få tilgang til et element som ikke er på listen. Den isset funksjonen er en nyttig måte å sjekke listen uten å generere noen feil. For eksempel, hvis du har en liste over elementer i beholdningen som en assosiativ array, med elementnavnet som nøkkelen og antall på lager som verdien, kan du sjekke for å se om en vare er på lager først ved å bruke isset å se hvis det er i listen, og deretter sjekket beholdningen. Hvis du krysser av inventar og varen ikke er på listen, får du en feilmelding. For eksempel:

if (isset ($ inventar [ "blyant"]) && $ inventar [ "blyant"]> 0)
echo "På lager";
ellers
echo "Ikke på lager";

Bruke tom

Den tomme funksjonen er spesielt nyttig når du ønsker å sjekke at en bruker har oppgitt en verdi i et datafelt. Mens samle innspill på et skjema, for eksempel initial du en streng variabel til en tom streng og en numerisk variabel til null før du setter dem på skjemaet. Etter at brukeren sender inn sin inngang, kan du bruke den tomme funksjonen for å sikre at han faktisk kom inn en verdi i feltet. For eksempel:

if (! tom ($ name) &&! tom ($ birth_year))
echo "Input komplett";
ellers
echo "Du må fylle ut alle datafeltene";