lau*_*kok 22 php string integer zero
我想将0视为一个整数,将'0'视为字符串,但是empty()在下面的示例中将'0'视为字符串,
$var = '0';
// Evaluates to true because $var is empty
if (empty($var)) {
echo '$var is empty';
}
Run Code Online (Sandbox Code Playgroud)
我如何'使'空()将'0'作为字符串?
谢谢.
Jim*_* W. 37
你做不到.这就是它的设计方式.相反,您可以编写一个and语句来测试:
if (empty($var) && $var !== '0') {
echo $var . ' is empty';
}
Run Code Online (Sandbox Code Playgroud)
你可以使用isset,除非你想让它转过去empty检查的其他空.
编辑
修复了检查以进行类型检查,感谢2371指出了:)
你不能只用empty().请参阅手册.你可以这样做:
if ($var !== '0' && empty($var)) {
echo "$var is empty and is not string '0'";
}
Run Code Online (Sandbox Code Playgroud)
基本上,empty()的作用与:
if (!$var) ...
Run Code Online (Sandbox Code Playgroud)
但是,如果未设置变量,则不会触发PHP Notice.
PHP 有不同的函数可以用来测试变量的值。三个有用的函数是isset()、empty()和is_null()。所有这些函数都返回一个布尔值。如果这些功能没有以正确的方式使用,它们可能会导致意外的结果。
isset() 和 empty() 通常被视为相反的函数,但这并不总是正确的。在这篇文章中,我将解释这些功能之间的区别。
isset()
isset — 确定变量是否已设置且不为 NULL
换句话说,只有当变量不为空时它才返回真。空的()
empty - 确定变量是否为空
换句话说,如果变量是空字符串、false、array()、NULL、“0?、0 和未设置的变量,它将返回 true。一片空白()
is_null — 查找变量是否为 NULL
换句话说,只有当变量为空时它才返回真。is_null() 与isset() 相反,不同之处在于isset() 可以应用于未知变量,而is_null() 只能应用于声明的变量。
图中的表格是这些函数针对不同值返回的内容的简单参考。空格表示函数返回bool (false)。
我还制作了一个用于检查所有内容的自定义函数:
function checkEmpty($var, $term = ""){
if(isset($var) && trim($var) != "" && (!empty($var) || trim($var) == 0)){
return true;
}
else{
if($term != ""){
return array("status" => "error", "desc" => "$term can not be empty");
}
else{
return array("status" => "error", "desc" => "value can not be empty");
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47029 次 |
| 最近记录: |