愚蠢的問題,我知道,但如果我不知道變量$var
是否設置與否,我應該使用速記isset和!空
isset($var) && !empty($var)
檢查它是否有任何價值,或者是
!empty($var)
夠了嗎?如果第二種情況下$var
爲空,會不會有問題?
愚蠢的問題,我知道,但如果我不知道變量$var
是否設置與否,我應該使用速記isset和!空
isset($var) && !empty($var)
檢查它是否有任何價值,或者是
!empty($var)
夠了嗎?如果第二種情況下$var
爲空,會不會有問題?
我認爲你可以完全丟棄isset()
在你使用empty()
情況下,由於empty()
檢查變量是否是第一次設置,也
這樣畢竟,使用
if (!empty($var)) {
//isset and not empty
}
是的,你可以刪除isset()
:
empty()
是(boolean) var
相反,除了不產生報警時,變量未設置。
您可以用下面的代碼中看到這一點:
error_reporting(E_ALL);
var_dump(empty($var));
bool(true)
(注缺乏一個未定義的變量警告)
您應該使用isset()函數,如!如果您的$ var爲0,empty()將返回false。
<?php
$var = 0;
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is either 0, empty, or not set at all';
}
//Evaluates false because $var is empty
if(!empty($var)){
}
// Evaluates as true because $var is set
if (isset($var)) {
echo '$var is set even though it is empty';
}
?>
@tandu:是的,會的。 0被認爲是空的,這是在手冊中說明:http://php.net/manual/en/function.empty.php – kylex
爲什麼不只是檢查PHP手冊http://php.net/manual/en/function.empty.php – Cyclonecode
有了這個標準,在StackOverflow中就沒有任何問題了吧? – federicot
克里斯特有一個觀點。手冊指出'empty()與(boolean)var相反,只是當變量沒有設置時不會產生警告。「你可以從中得出結論:*不使用isset()。但我並不反對你的問題,因爲其他人可能不會這樣做。 – simshaun