Heim > Backend-Entwicklung > PHP-Tutorial > Haben Sie Fragen zu Isset und Empty?

Haben Sie Fragen zu Isset und Empty?

WBOY
Freigeben: 2016-10-22 00:14:09
Original
1329 Leute haben es durchsucht

Ich habe mir kürzlich Sitzungsprobleme angesehen und musste feststellen, ob der Benutzer angemeldet war. Ich habe festgestellt, dass mit den folgenden beiden Methoden erfolgreich festgestellt werden kann, ob der Benutzer angemeldet ist.
Der Code lautet wie folgt:

<code>第一种:
if(empty($_SESSION)){

    echo '您还未登录,请<a href="login.php">登录</a><p>';

}else{

    echo '欢迎'.$_SESSION['uname'].' 这里是主页 ';

    echo '<a href="quit.php">退出</a><p>';
}

第二种:
if(!isset($_SESSION['uname'])){

    echo '您还未登录,请<a href="login.php">登录</a><p>';

}else{

    echo '欢迎'.$_SESSION['uname'].' 这里是主页 ';

    echo '<a href="quit.php">退出</a><p>';
}

</code>
Nach dem Login kopieren
Nach dem Login kopieren

Problem: Wenn Sie in der zweiten Beurteilungsanweisung nur $_SESSION anstelle von $_SESSION['uname'] schreiben, wird bei Verwendung der ersten Methode ein Fehler gemeldet, ob die Klammern nach dem Leerzeichen $_SESSION[ ' sind. uname'] oder $_SESSION sind kein Problem, was ist der Grund? Welche der beiden Methoden ist besser? Oder ist es sicherer? Vielen Dank

Antwortinhalt:

Ich habe mir kürzlich Sitzungsprobleme angesehen und musste feststellen, ob der Benutzer angemeldet war. Ich habe festgestellt, dass mit den folgenden beiden Methoden erfolgreich festgestellt werden kann, ob der Benutzer angemeldet ist.
Der Code lautet wie folgt:

<code>第一种:
if(empty($_SESSION)){

    echo '您还未登录,请<a href="login.php">登录</a><p>';

}else{

    echo '欢迎'.$_SESSION['uname'].' 这里是主页 ';

    echo '<a href="quit.php">退出</a><p>';
}

第二种:
if(!isset($_SESSION['uname'])){

    echo '您还未登录,请<a href="login.php">登录</a><p>';

}else{

    echo '欢迎'.$_SESSION['uname'].' 这里是主页 ';

    echo '<a href="quit.php">退出</a><p>';
}

</code>
Nach dem Login kopieren
Nach dem Login kopieren

Problem: Wenn Sie in der zweiten Beurteilungsanweisung nur $_SESSION anstelle von $_SESSION['uname'] schreiben, wird bei Verwendung der ersten Methode ein Fehler gemeldet, ob die Klammern nach dem Leerzeichen $_SESSION[ ' sind. uname'] oder $_SESSION sind kein Problem, was ist der Grund? Welche der beiden Methoden ist besser? Oder ist es sicherer? Vielen Dank

Es wird empfohlen, die zweite Option zu verwenden. Unter der Voraussetzung, dass der zweite korrekt verwendet wird, wird der Code strenger.
Empty gibt an, ob es leer ist, isset gibt an, ob die Variable existiert.
Solange Sie die Sitzungsfunktion session_start(); aktivieren, gibt es eine Array-Variable $_SESSION.
Wenn Sie jedoch nicht angemeldet sind, ist $_SESSION nur ein leeres Array. Nur wenn Sie angemeldet sind, werden Daten in die $_SESSION-Daten geschrieben, z. B.
$_SESSION['uname'].
Der zweite Grund, warum allein das Schreiben von $_SESSION einen Fehler meldet, ist, dass Sie sich noch nicht angemeldet haben, sodass $_SESSION['uname'] nicht existiert, $_SESSION jedoch als leeres Array existiert.

empty bestimmt, ob der Parameter als leer gilt. Auch wenn der Parameter vorhanden ist, sein Wert jedoch falsch ist, wird der Parameter dennoch als leer betrachtet.

if(isset($_SESSION['uname']) && !empty($_SESSION['uname'])){//Das ist gut

}

Der Unterschied zwischen isset und empty: Die Verarbeitungsobjekte von empty() und isset() sind nichts anderes als undefinierte Variablen, 0 und leere Zeichenfolgen.

<code>如果变量为0,则empty()会返回TRUE,isset()会返回TRUE; 
如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE; 
如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE; </code>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage