你能幫助我改進(jìn)我的編碼風(fēng)格嗎?:) 在某些任務(wù)中我需要檢查 - 變量是否為空或包含某些內(nèi)容。為了解決這個(gè)任務(wù),我通常會(huì)執(zhí)行以下操作。
檢查 - 該變量是否已設(shè)置?如果已設(shè)置 - 我檢查 - 它是否為空?
<?php $var = '23'; if (isset($var)&&!empty($var)){ echo 'not empty'; }else{ echo 'is not set or empty'; } ?>
我有一個(gè)問(wèn)題 - 我應(yīng)該在empty()之前使用isset() -有必要嗎? TIA!
在您的特定情況下:if ($var)
。
如果您不知道變量是否存在,則需要使用isset
。由于您在第一行聲明了它,因此您知道它存在,因此您不需要,不,不應(yīng)該使用isset
。
對(duì)于 empty
也是如此,只是 empty
還結(jié)合了對(duì)值的真實(shí)性的檢查。 empty
相當(dāng)于 !isset($var) || !$var
和 !empty
相當(dāng)于 isset($var) && $var
或 isset($var) && $var ==正確
。
如果您只想測(cè)試一個(gè)應(yīng)該存在的變量的真實(shí)性,if ($var)
就完全足夠了。 .
這取決于您要查找的內(nèi)容,如果您只是想查看它是否為空,請(qǐng)使用 empty
因?yàn)樗矔?huì)檢查它是否已設(shè)置,如果您想知道某些內(nèi)容是否已設(shè)置設(shè)置或不使用 isset
。
Empty
檢查變量是否已設(shè)置,如果設(shè)置了,則檢查變量是否為 null、""、0 等
Isset
只是檢查它是否已設(shè)置,它可以是任何不為空的內(nèi)容
對(duì)于空
,以下內(nèi)容被視為空:
來(lái)自 http://php.net/manual/en/function.empty.php
正如評(píng)論中提到的,對(duì)于empty(),缺乏警告也很重要
PHP 手冊(cè)說(shuō)
關(guān)于問(wèn)題
PHP 手冊(cè)說(shuō)
你的代碼就可以了:
例如:
$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 {...}