Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen isset() und empty() in PHP

Der Unterschied zwischen isset() und empty() in PHP

迷茫
迷茫Original
2017-03-26 11:16:471272Durchsuche

Die isset()-Funktion von PHP wird im Allgemeinen verwendet, um zu erkennen, ob eine Variable gesetzt ist
Format: bool isset ( Mixed var [, Mixed var [, ...]] )

Funktion: Erkennen, ob die Variable gesetzt ist

Rückgabewert:

Wenn die Variable nicht existiert, geben Sie FALSE zurück
Wenn die Variable existiert und ihr Wert NULL ist, wird sie ebenfalls zurückgegeben FALSE
Wenn die Variable existiert und der Wert nicht NULL ist, wird TRUE zurückgegeben
Bei der gleichzeitigen Prüfung mehrerer Variablen wird TRUE nur zurückgegeben, wenn jedes Element die vorherige Anforderung erfüllt, andernfalls ist das Ergebnis FALSE
Version: PHP 3, PHP 4, PHP 5
Weitere Hinweise:
Nachdem eine Variable mit unset() freigegeben wurde, ist sie nicht mehr isset().
Die PHP-Funktion isset() kann nur für Variablen verwendet werden. Die Übergabe anderer Parameter führt zu einem Parsing-Fehler.
Um zu erkennen, ob eine Konstante festgelegt wurde, verwenden Sie die Funktion define().

PHPs empty()-Funktion bestimmt, ob der Wert leer ist

Format: bool leer (gemischte Variable)

Funktion: Überprüfen Sie, ob eine Variable vorhanden ist leer

Rückgabewert:

Wenn die Variable nicht existiert, geben Sie TRUE zurück
Wenn die Variable existiert und ihr Wert „“, 0, „0“, NULL,, FALSE, ist array( ), var $var; und Objekte ohne Attribute, return TURE
Wenn die Variable existiert und der Wert nicht „“, 0, „0“, NULL,, FALSE, array(), var $var; und kein Objekt eines beliebigen Attributs, gibt FALSE zurück
Version: PHP 3, PHP 4, PHP 5
Weitere Erklärung:
Der Rückgabewert von empty() = (boolean) var, wird es aber nicht sein weil die Variable nicht ist. Definieren Sie eine Warnmeldung. Weitere Informationen finden Sie unter Konvertieren in einen booleschen Wert.
empty() kann nur für Variablen verwendet werden. Die Übergabe anderer Parameter führt zu einem Paser-Fehler und beendet den Vorgang.
Um zu erkennen, ob eine Konstante festgelegt wurde, verwenden Sie die Funktion define().
Beispiel: Ein einfacher Vergleich zwischen empty() und isset()

<?php 
$var = 0; 
// 结果为 true,因为 $var 为空 
if
 (empty($var)) { 
echo
 &#39;$var is either 0 or not set at 
all
&#39;; 
} 
// 结果为 false,因为 $var 已设置 
if (!isset($var)) { 
echo &#39;$var is not set at all&#39;; 
} 
?>


Hinweis: Da es sich hierbei um eine Sprachstruktur und nicht um eine Funktion handelt, kann sie nicht von Variablenfunktionen aufgerufen werden.
Hinweis: empty() erkennt nur Variablen. Das Erkennen von allem, was keine Variable ist, führt zu einem Analysefehler. Mit anderen Worten, die folgende Anweisung funktioniert nicht: empty(addslashes($name)).
Das Folgende ist ein detaillierter Beispielcode für isset- und leere Funktionen, der von Script House getestet wurde. Nach dem Lesen ist es im Grunde dasselbe:

<?php 
error_reporting
(E_ALL); 
echo &#39;<B>未定义$var</b><Br>&#39;; 
echo "isset测试:<Br>"; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else
 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = \&#39;\&#39;</b><Br>&#39;; 
echo "isset测试:<Br>"; 
$var = &#39;&#39;; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = 0</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = 0 ; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var = null</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = null ; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
echo &#39;----------------------------------<br>&#39;; 
echo &#39;<B>$var ="php"</b><Br>&#39;; 
echo &#39;isset测试:<Br>&#39;; 
$var = "php"; 
if ( isset ( $var )) 
{ 
echo &#39;变量$var存在!<Br>&#39; ; 
} 
echo "empty测试:<Br>"; 
if ( empty ( $var )){ 
echo &#39;变量$var的值为空<Br>&#39;; 
} 
else 
{ 
echo &#39;变量$var的值不为空<Br>&#39;; 
} 
echo "变量直接测试:<Br>"; 
if ( $var ){ 
echo &#39;变量$var存在!<Br>&#39;; 
} 
else { 
echo &#39;变量$var不存在!<Br>&#39;; 
} 
?>

Bei Verwendung von PHP zum Schreiben von Seitenprogrammen. Ich verwende oft die Variablenverarbeitungsfunktion, um festzustellen, ob ein Variablenwert am Ende der PHP-Seite leer ist. Zuerst war ich es gewohnt, die Funktion empty() zu verwenden, aber ich habe einige Probleme festgestellt, also bin ich auf isset( umgestiegen. ) Funktion und das Problem bestand nicht mehr.
Wie der Name schon sagt, empty() Bestimmen Sie, ob eine Variable „leer“ ist, isset() Ermittelt, ob eine Variable gesetzt wurde. Es ist dieses sogenannte „wie der Name schon sagt“, das mich zu Beginn dazu veranlasst hat, einige Umwege zu machen: Wenn ein Variablenwert gleich 0 ist, ist empty () auch wahr (True), also wird es passieren Einige Überraschungen. Es stellt sich heraus, dass empty() und isset() Obwohl es sich bei beiden um Variablenverarbeitungsfunktionen handelt, werden sie verwendet, um festzustellen, ob die Variable konfiguriert wurde. Sie weisen jedoch bestimmte Unterschiede auf: „leer“ erkennt auch, ob die Variable leer oder Null ist. Wenn ein Variablenwert 0 ist, empty() Diese Variable wird als leer betrachtet, was bedeutet, dass keine Einstellung erfolgt.
Um beispielsweise die Variable $id zu erkennen, verwenden Sie empty() und isset(), um zu erkennen, ob die Variable $id konfiguriert wurde. Beide geben unterschiedliche Werte zurück – empty() berücksichtigt Wenn es nicht konfiguriert ist, kann isset () den Wert von $id abrufen:

$id=0; 
empty($id)?
print
 "It&#39;s empty .":print "It&#39;s $id ."; 
//结果:It&#39;s empty . 
print "<br>"; 
!isset($id)?print "It&#39;s empty .":print "It&#39;s $id ."; 
//结果:It&#39;s 0 .

Das bedeutet, dass wir bei der Verwendung der Variablenverarbeitungsfunktion vorsichtig sein müssen, wenn die Variable einen Wert von 0 haben kann, wenn wir leer verwenden () Verwenden Sie zu diesem Zeitpunkt isset. Es wäre klüger, es zu ersetzen.
Wenn der URL-Endparameter einer PHP-Seite id=0 erscheint (zum Beispiel: test.php?id=0), versuchen Sie einen Vergleich:

if(empty($id)) $id= 1; – Wenn id=0, ist id auch 1
if(!isset($id)) $id=1; – Wenn id=0, ist id nicht 1

Sie können ausführen Überprüfen Sie den folgenden Code separat:

if(empty($id)) $id=1;
print $id=1
if(!isset($id) ) $id=1 ;
print $id; //get 0

Um über ihre Verbindung zu sprechen: Ihre gemeinsamen Punkte sind empty() und isset () ist eine Variablenverarbeitungsfunktion, deren Funktion darin besteht, festzustellen, ob die Variable konfiguriert wurde. Gerade aufgrund ihrer großen Ähnlichkeit im Prozess der Variablenverarbeitung haben sie ein unzureichendes Verständnis ihrer Beziehung. Shan Cong Wenn die beiden Funktionen empty () und isset () einzeln betrachtet werden, werden die Leute verwirrter. Betrachten Sie sie aus einem anderen Blickwinkel. Die Verarbeitungsobjekte von empty() und isset() sind nichts anderes als undefinierte Variablen, 0 und leere Strings.
Wenn die Variable 0 ist, gibt empty() TRUE zurück, isset() gibt TRUE zurück.

Wenn die Variable eine leere Zeichenfolge ist, gibt empty() TRUE zurück, isset() gibt TRUE zurück ;
Wenn die Variable nicht definiert ist, gibt empty() TRUE und isset() FLASE zurück
Die Erklärung von empty() im Handbuch lautet wie folgt:
Beschreibung bool empty(mixed var)
Wenn var ein nicht leerer Wert oder ein Wert ungleich Null ist, gibt empty() FALSE zurück. Mit anderen Worten: „“, 0, „0“, NULL, FALSE, array(), var $var; und Objekte ohne Eigenschaften werden als leer betrachtet und TRUE wird zurückgegeben, wenn var leer ist.
Die Erklärung von isset() im Handbuch lautet wie folgt:

isset() erkennt, ob die Variable gesetzt ist

Beschreibung bool isset ( Mixed var [ , gemischt var [, ...]] )

Gibt TRUE zurück, wenn var existiert, andernfalls wird FALSE zurückgegeben.

Wenn eine Variable mit unset() freigegeben wurde, ist sie nicht mehr isset(). Wenn Sie isset() verwenden, um eine Variable zu testen, die auf NULL gesetzt ist, wird FALSE zurückgegeben. Beachten Sie außerdem, dass ein NULL-Byte („?“) nicht der NULL-Konstante von PHP entspricht.
Warnung: isset() kann nur mit Variablen verwendet werden, da die Übergabe anderer Argumente zu einem Analysefehler führt. Wenn Sie überprüfen möchten, ob eine Konstante gesetzt wurde, können Sie die Funktion define() verwenden.

Wenn Sie feststellen möchten, ob eine Variable deklariert wurde, können Sie die isset-Funktion verwenden.
Wenn Sie feststellen möchten, ob einer Variablen Daten zugewiesen wurden und sie nicht leer ist, können Sie diese verwenden die leere Funktion
Wenn Sie feststellen möchten, ob einer Variablen Daten zugewiesen wurden und sie nicht leer ist, können Sie die leere Funktion verwenden. Wenn die Variable existiert und nicht leer ist, verwenden Sie zuerst die isset-Funktion und dann die leere Funktion

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen isset() und empty() in PHP. 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