我想检查名为$ smth的变量是否为空(我的意思是空格),我还想检查它是否使用我在下面定义的函数设置:
function is_blank($var){
$var = trim($var);
if( $var == '' ){
return true;
} else {
return false;
}
}
问题是我无法找到检查$smth
函数中是否设置了变量is_blank()
的方法。以下代码解决了我的问题,但使用了两个函数:
if( !isset($smth) || is_blank($smth) ){
// code;
}
如果我使用未声明的变量作为函数的参数,它会说:
if( is_blank($smth) ){
//code;
}
Undefined variable: smth in D:\Www\www\project\code.php on line 41
你有解决方案吗?
这就是我提出的:
function is_blank(&$var){
if( !isset($var) ){
return true;
} else {
if( is_string($var) && trim($var) == '' ){
return true;
} else {
return false;
}
}
}
答案 0 :(得分:9)
只需通过引用传递,然后执行isset检查:
function is_blank(&$var){
return !isset($var) || trim($var) == '';
}
答案 1 :(得分:0)
每当您使用empty
和isset
之外的变量时,都会检查它是否已设置。因此,使用isset的解决方案是正确的,您无法将检查推迟到is_blank
函数。如果您只想检查变量是否为空,请仅使用empty
函数。但是,如果您想在trim
操作后专门检查空字符串,请使用isset
+ is_blank
函数。
答案 2 :(得分:-1)
使用empty
。它检查变量是0,空还是不设置。
if(empty($smth))
{
//code;
}