Heim >Backend-Entwicklung >PHP-Tutorial >Der Unterschied zwischen if($args) und if(!empty($args)) in PHP

Der Unterschied zwischen if($args) und if(!empty($args)) in PHP

WBOY
WBOYOriginal
2016-12-01 01:27:551972Durchsuche

Beim Codieren kommt es oft zu Verwirrung und bei der Beurteilung, ob eine Variable nicht leer ist:
Methode 1: if($args){...etwas tun..🎜>Methode 2: if(!empty($ args)) {...etwas tun...}

Haben diese beiden Methoden den gleichen Effekt? Welche ist hinsichtlich der Ausführungseffizienz besser?

Danke für die Antwort!

Antwortinhalt:

Beim Codieren kommt es oft zu Verwirrung und bei der Beurteilung, ob eine Variable nicht leer ist:

Methode 1: if($args){...etwas tun..🎜>Methode 2: if(!empty($ args)) {...etwas tun...}

Haben diese beiden Methoden den gleichen Effekt? Welche ist hinsichtlich der Ausführungseffizienz besser?

Danke für die Antwort!


Nicht dasselbe, wenn $args == 0, dann ist $args == false

In den meisten Fällen ist!leer sicherer. Es kann nicht gesetzte Variablen als Parameter verwenden, ohne einen Fehler zu melden, zum Beispiel:

Wenn Element 2 nicht im Array vorhanden ist, wird ein Fehler gemeldet. Es sollte so geschrieben sein
<code class="php">if($args[2] == 1) {}</code>

<code class="php">if(!empty($args[2]) && $args[2] == 1) {}</code>
Die erste Methode führt zu einer Warnung, wenn

nicht definiert ist. Jeder Fehler in PHP führt zu erheblichen Leistungseinbußen. Dies ist hauptsächlich auf den Fehlerbehandlungsmechanismus von PHP zurückzuführen.

$argsDie zweite Methode

kann mit undefinierten Parametern umgehen und Warnungen vermeiden. Darüber hinaus handelt es sich bei

eher um eine Anweisung als um eine Funktion, sodass die Ausführungseffizienz nicht viel langsamer ist als bei der ersten Methode. empty emptyKurz gesagt: Wenn Sie sicherstellen können, dass

definiert wurde, können Sie die erste Methode verwenden. Wenn nicht, wird empfohlen, die zweite Option zu verwenden.

$args

    Methode 1: Es handelt sich um eine Typkonvertierung
  • Methode 2: leer bestimmt nicht leere Werte, und leere Werte umfassen
<code>int 0
float 0.0
string '0'
string ''
array array()
boolean false
NULL
$var(一个定义了但为空值的变量)</code>
Der Schlüssel liegt in der Beurteilung von if() und empty().

Kopieren Sie das geschriebene Protokoll, aber nur, wenn:


Dies ist das Beurteilungsergebnis von if. Wenn es leer ist, lesen Sie bitte das Dokument.
<code>布尔值FALSE身.
整形值0.
浮点类型0.0
空字符串'',以及字符串'0';//这里是重点
不包含任何元素的数组.
不包含任何成员的对象.(仅php 4.0)
特殊类型NULL
其他任何类型的数据都被默认为TRUE(包括资源类型)
-1也为TRUE(无论正负)</code>
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