检查作为参数传递的变量是否已设置
我想检查一个名为 $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;
}
}
}
并且效果很好。非常感谢您的想法,
I want to check if a variable called $smth is blank (I mean empty space), and I also want to check if it is set using the function I defined below:
function is_blank($var){
$var = trim($var);
if( $var == '' ){
return true;
} else {
return false;
}
}
The problem is I can't find a way to check if variable $smth
is set inside is_blank()
function. The following code solves my problem but uses two functions:
if( !isset($smth) || is_blank($smth) ){
// code;
}
If I use an undeclared variable as an argument for a function it says:
if( is_blank($smth) ){
//code;
}
Undefined variable: smth in D:\Www\www\project\code.php on line 41
Do you have a solution for this?
Solution
This is what I came up with:
function is_blank(&$var){
if( !isset($var) ){
return true;
} else {
if( is_string($var) && trim($var) == '' ){
return true;
} else {
return false;
}
}
}
and works like a charm. Thank you very much for the idea, NikiC.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
每当您使用
empty
和isset
之外的变量时,都会检查它之前是否已设置。因此,您使用 isset 的解决方案是正确的,您不能推迟对is_blank
函数的检查。如果您只想检查变量是否为空,请仅使用empty
函数。但是,如果您想在trim
操作后专门检查空字符串,请使用isset
+ 您的is_blank
函数。Whenever you use a variable outside of
empty
andisset
it will be checked if it was set before. So your solution with isset is correct and you cant' defer the check into theis_blank
function. If you only want to check if the variable is empty, use just theempty
function instead. But if you want to specifically check for an empty string after atrim
operation, useisset
+ youris_blank
function.使用
空
。它检查变量是否为 0、空或根本未设置。Use
empty
. It checks whether the variable is either 0, empty, or not set at all.只需通过引用传递,然后进行 isset 检查:
Simply pass by reference and then do isset check: