你能幫我改進我的程式設計風格嗎? :) 在某些任務中我需要檢查 - 變數是否為空或包含某些內容。為了解決這個任務,我通常會執行以下操作。
檢查 - 該變數是否已設定?如果已設定 - 我檢查 - 它是否為空?
<?php $var = '23'; if (isset($var)&&!empty($var)){ echo 'not empty'; }else{ echo 'is not set or empty'; } ?>
我有一個問題 - 我應該在empty()之前使用isset() -有必要嗎? TIA!
P粉5144588632023-10-17 19:55:24
在您的特定情況下:if ($var)
。
如果您不知道變數是否存在,則需要使用isset
。由於您在第一行聲明了它,因此您知道它存在,因此您不需要,不,不應該使用isset
。
對於 empty
也是如此,只是 empty
也結合了對值的真實性的檢查。 empty
相當於!isset($var) || !$var
和!empty
相當於isset($var) && $var
或isset($var) && $var ==正確
。
如果您只想測試一個應該存在的變數的真實性,if ($var)
就完全足夠了。 .
P粉4589136552023-10-17 12:42:26
這取決於您要查找的內容,如果您只是想查看它是否為空,請使用empty
因為它也會檢查它是否已設置,如果您想知道某些內容是否已設定設定或不使用isset
。
Empty
檢查變數是否已設置,如果設定了,則檢查變數是否為 null、""、0 等
Isset
只是檢查它是否已設置,它可以是任何不為空的內容
對於空
,以下內容被視為空:
來自 http://php.net/manual/en/function.empty.php
#如同評論中所提到的,對於empty(),缺乏警告也很重要
關於問題
你的程式碼就可以了:
例如:
$var = ""; if(empty($var)) // true because "" is considered empty {...} if(isset($var)) //true because var is set {...} if(empty($otherVar)) //true because $otherVar is null {...} if(isset($otherVar)) //false because $otherVar is not set {...}