PHP 'isset' vs. 'leeg'

De "isset" en "leeg" functies zowel controleren op het bestaan van gegevens in een variabele, maar tegengestelde resultaten opleveren. De functie van isset retourneert true als gegevens bestaan, en de lege functie retourneert de waarde true als gegevens niet bestaat. Hoewel beide functies gegevens bestaan controleren, zijn ze niet exacte tegenpolen van elkaar. Elke functie maakt gebruik van verschillende criteria bij het bepalen of gegevens bestaat, met de functie van de isset wordt strenger zijn dan de lege functie. Neem de tijd om te begrijpen van de specifieke gevallen waarin elke functie zal evalueren als waar of onwaar en gebruik de juiste functie op basis van het soort bewerking dat u uitvoert.

De isset functie

De functie van isset retourneert false als een variabele ongedefinieerd of ongeldig zijn is; anders is het resultaat waar. Een variabele die een lege tekenreeks bevat is niet nul, noch is een variabele die als een lege matrix heeft geïnitialiseerd. Bijvoorbeeld:

ECHO isset($y); vals
$y = null;
ECHO isset($y); vals
$y = "";
ECHO isset($y); waar

De lege functie

De lege functie is minder restrictief zijn dan de isset functie. Het resulteert in true als een variabele unset--niet-gedefinieerde of null is-- en ook deze eigenschap is true als een variabele is een lege tekenreeks, een lege matrix, valse, nul of "0." Een andere waarde retourneert false.

Met behulp van isset

Wanneer u een matrix gebruiken voor het opslaan van een lijst en u controleren wilt of een item in de lijst, krijgt u een fout als u probeert een item dat niet in de lijst. De functie van isset is een handige manier om te controleren de lijst zonder het genereren van eventuele fouten. Bijvoorbeeld, als u een lijst met items in de inventaris als een associatieve array, met de naam van het item als de sleutel en het aantal in voorraad als de waarde, kunt u om te zien of een item in voorraad eerst met behulp van isset om te zien of het in de lijst en vervolgens de controle van de inventaris. Als u de inventaris controleert en het item niet in de lijst staat, krijgt u een fout. Bijvoorbeeld:

Als (isset($inventory["pencil"]) & & $inventory ["potlood"] > 0)
echo "In voorraad";
anders
echo "niet op voorraad";

Met behulp van lege

De lege functie is vooral handig als u controleren wilt of een gebruiker een waarde heeft ingevoerd in een gegevensveld. Tijdens het verzamelen van input op een formulier, bijvoorbeeld, initialiseren u een tekenreeks op een lege tekenreeks en een numerieke variabele op nul alvorens ze op het formulier. Nadat de gebruiker zijn inbreng verzendt, kunt u de lege functie om ervoor te zorgen dat hij eigenlijk een waarde ingevoerd in het veld. Bijvoorbeeld:

Als (! empty($name) & &! empty($birth_year))
echo "Input voltooid";
anders
echo "U moet alle gegevensvelden invullen";