Heim >Backend-Entwicklung >PHP-Tutorial >Der Unterschied zwischen if($args) und if(!empty($args)) in PHP
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...}
Danke für die Antwort!
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?
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.
$args
Die zweite Methode
eher um eine Anweisung als um eine Funktion, sodass die Ausführungseffizienz nicht viel langsamer ist als bei der ersten Methode. empty
empty
Kurz gesagt: Wenn Sie sicherstellen können, dass
$args
<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:
<code>布尔值FALSE身. 整形值0. 浮点类型0.0 空字符串'',以及字符串'0';//这里是重点 不包含任何元素的数组. 不包含任何成员的对象.(仅php 4.0) 特殊类型NULL 其他任何类型的数据都被默认为TRUE(包括资源类型) -1也为TRUE(无论正负)</code>