Könnten Sie mir helfen, meinen Codierungsstil zu verbessern? :) Bei einigen Aufgaben muss ich überprüfen, ob die Variable leer ist oder etwas enthält. Um diese Aufgabe zu lösen, mache ich normalerweise Folgendes.
Prüfen - ist diese Variable gesetzt oder nicht? Wenn es eingestellt ist - ich überprüfe - ist es leer oder nicht?
<?php
$var = '23';
if (isset($var)&&!empty($var)){
echo 'not empty';
}else{
echo 'is not set or empty';
}
?>
Und ich habe eine Frage - sollte ich isset () vor empty () verwenden - ist das notwendig? TIA!
Antworten:
Es hängt davon ab, wonach Sie suchen. Wenn Sie nur sehen
empty
möchten, ob es leer ist, verwenden Sie einfach, um zu prüfen, ob es ebenfalls festgelegt ist, und ob Sie wissen möchten, ob etwas festgelegt ist oder nichtisset
.Empty
prüft, ob die Variable gesetzt ist und ob sie auf null, "", 0 usw.Isset
prüft nur, ob es gesetzt ist, es könnte alles sein, was nicht null istMit
empty
werden folgende Dinge als leer betrachtet:Von http://php.net/manual/en/function.empty.php
Wie in den Kommentaren erwähnt, ist das Fehlen einer Warnung auch bei empty () wichtig
PHP-Handbuch sagt
In Bezug auf isset
PHP-Handbuch sagt
Ihr Code wäre in Ordnung als:
Beispielsweise:
quelle
empty
: Es wird keine Warnung ausgegeben, wenn die getestete Variable nicht vorhanden ist. Das ist der springende Punkt dieser Funktion, ansonsten ist sie identisch mit== false
.isset
einer null (und vorhandenen) Variablen wird ausgewertetfalse
.In Ihrem speziellen Fall :
if ($var)
.Sie müssen verwenden,
isset
wenn Sie nicht wissen, ob die Variable vorhanden ist oder nicht. Da Sie es jedoch in der ersten Zeile deklariert haben, wissen Sie, dass es existiert, daher müssen Sie es nicht verwendenisset
.Das gleiche gilt
empty
, nur dassempty
auch eine Überprüfung der Wahrhaftigkeit des Wertes kombiniert wird.empty
ist äquivalent zu!isset($var) || !$var
und!empty
äquivalent zuisset($var) && $var
oderisset($var) && $var == true
.Wenn Sie nur eine Variable testen möchten, die für die Wahrhaftigkeit existieren sollte ,
if ($var)
ist dies vollkommen ausreichend und auf den Punkt.quelle
!empty is equivalent to isset($var) && $var
, wäre das großartig. Danke @decezeSie können einfach empty () verwenden - wie in der Dokumentation gezeigt , wird false zurückgegeben, wenn die Variable keinen Wert hat.
Ein Beispiel auf derselben Seite:
Sie können isset verwenden, wenn Sie nur wissen möchten, ob es nicht NULL ist. Ansonsten scheint es leer zu sein () ist in Ordnung, es alleine zu benutzen.
quelle
$var = null; isset( $var ) == true
.Hier sind die Ausgaben von
isset()
undempty()
für die 4 Möglichkeiten: nicht deklariert, null, falsch und wahr.Sie werden feststellen, dass alle 'isset'-Ergebnisse mit Ausnahme des Falls den' leeren 'Ergebnissen entgegengesetzt sind
$b=false
. Alle Werte (außer null, bei denen es sich nicht um einen Wert, sondern um einen Nichtwert handelt), die als falsch ausgewertet werden, geben true zurück, wenn sie von getestet werden,isset
und false, wenn sie von 'leer' getestet werden.Verwenden
isset()
Sie diese Option, wenn Sie über die Existenz einer Variablen besorgt sind. Und verwendenempty
Sie, wenn Sie auf wahr oder falsch testen. Wenn die tatsächliche Art der Leere Angelegenheiten, Verwendungis_null
und===0
,===false
,===''
.quelle
Empty gibt true zurück, wenn die Variable nicht festgelegt ist. Isset gibt jedoch true zurück, auch wenn die Variable nicht leer ist.
quelle
Dies ist ein einfaches Beispiel. Ich hoffe es hilft.
Bearbeiten:
isset
Wird hinzugefügt, falls eine Variable nicht wie oben definiert ist, würde dies einen Fehler verursachen. Wenn Sie prüfen, ob der erste Satz mindestens dazu beiträgt, einige Kopfschmerzen zu beseitigen.quelle
strlen
unter Null? Ich möchte diese Saite sehen.