Heim  >  Artikel  >  Backend-Entwicklung  >  Warum ich das Sprachkonstrukt empty() häufiger als isset() in PHP verwende und das sollten Sie auch

Warum ich das Sprachkonstrukt empty() häufiger als isset() in PHP verwende und das sollten Sie auch

Susan Sarandon
Susan SarandonOriginal
2024-10-22 20:55:36381Durchsuche

Why I Use the empty() Language Construct More than isset() in PHP and You Should Too

Bei der Entwicklung in PHP ist die effektive Handhabung von Variablenprüfungen entscheidend, um robusten und fehlerfreien Code sicherzustellen. Zwei häufig verwendete Sprachkonstrukte für diesen Zweck sind empty() und isset(). In vielen Fällen kann die Wahl von empty() jedoch vorteilhafter sein als isset(), vor allem weil empty() fast alle Szenarios abdeckt, die isset() durchführt, sowie zusätzliche Prüfungen. In diesem Artikel wird dargelegt, warum es im Allgemeinen besser ist, empty() konsistent in PHP zu verwenden, und dies anhand mehrerer Codebeispiele demonstriert.

Isset() und empty() verstehen

Bevor wir uns mit Einzelheiten befassen, klären wir zunächst, was diese Sprachkonstrukte bewirken:

isset(): Dieses Sprachkonstrukt prüft, ob eine Variable gesetzt und nicht NULL ist. Es gibt „true“ zurück, wenn die Variable existiert und ihr Wert nicht NULL ist; andernfalls wird false zurückgegeben.

$var = 0;
echo isset($var); // Outputs: 1 (true)

empty(): Dieses Sprachkonstrukt bestimmt, ob eine Variable als „leer“ gilt. Eine Variable gilt als leer, wenn sie nicht existiert oder ihr Wert den Wert „false“ hat. empty() gibt true zurück, wenn die Variable gemäß den zuvor genannten Bedingungen leer ist; andernfalls wird false zurückgegeben.

$var = 0;
echo empty($var); // Outputs: 1 (true)

Warum ich empty() mehr mag?

Der Hauptvorteil der Verwendung von empty() gegenüber isset() liegt in der Fähigkeit, mehrere Prüfungen gleichzeitig durchzuführen. empty() prüft, ob eine Variable gesetzt ist und ob ihr Wert leer ist („“, 0, 0,0, „0“, null, false und ein leeres Array). Dadurch entfällt die Notwendigkeit, sowohl isset() als auch eine Wertprüfung separat zu verwenden, was die Komplexität des Codes und potenzielle Fehler reduziert.

Codebeispiel 1: Standardwerte prüfen

$input = $_POST['data'] ?? '';

// Using isset()
if (isset($input) && $input !== '') {
    echo "Input is set and not empty.";
} else {
    echo "Input is not set or empty.";
}

// Using empty()
if (!empty($input)) {
    echo "Input is set and not empty/falsy.";
} else {
    echo "Input is not set or empty/falsy.";
}

Im obigen Beispiel vereinfacht empty() die Prüfung, indem es sie in einer einzigen Bedingung zusammenfasst.

Codebeispiel 2: Arbeiten mit Arrays

Bei der Arbeit mit Arrays, insbesondere mit Schlüsseln, die möglicherweise vorhanden sind oder nicht, ist empty() besonders nützlich, um Hinweise auf undefinierte Indizes zu vermeiden.

$data = ['username' => 'JohnDoe'];

// Using isset()
if (isset($data['username']) && $data['username'] !== '') {
    echo "Username is set and not empty.";
} else {
    echo "Username is missing or empty.";
}

// Using empty()
if (!empty($data['username'])) {
    echo "Username is set and not empty/falsy.";
} else {
    echo "Username is missing or empty/falsy.";
}

Codebeispiel 3: Boolesche Prüfungen

Beim Überprüfen boolescher Flags, insbesondere solcher, die möglicherweise nicht gesetzt sind, kann empty() zusätzliche bedingte Prüfungen vermeiden.

$options = ['enabled' => false];

// Using isset()
if (isset($options['enabled']) && $options['enabled']) {
    echo "Feature is enabled.";
} else {
    echo "Feature is disabled.";
}

// Using empty()
if (!empty($options['enabled'])) {
    echo "Feature is enabled.";
} else {
    echo "Feature is disabled.";
}

Abschluss

In PHP ist die Verwendung von empty() oft effizienter als isset(), da es umfassend prüft, ob eine Variable sowohl gesetzt ist als auch einen nicht falschen Wert hat. Dies macht es zu einem hervorragenden Werkzeug, um die Ausführlichkeit und Komplexität des Codes zu reduzieren und gleichzeitig die Robustheit der Prüfungen sicherzustellen. Zwar gibt es bestimmte Fälle, in denen isset() erforderlich ist, beispielsweise bei der Unterscheidung zwischen falschen, null- und nicht gesetzten Werten. Im Allgemeinen bietet empty() für die meisten Anwendungsfälle eine einfache und leistungsstarke Alternative.

Das obige ist der detaillierte Inhalt vonWarum ich das Sprachkonstrukt empty() häufiger als isset() in PHP verwende und das sollten Sie auch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn