PHP检查有效的函数返回
我有以下代码:PHP检查有效的函数返回,php,function,return,Php,Function,Return,我有以下代码: $myVariable=someRanDomFunction($blah) 问题是someRanDomFunction()可能返回数组、对象、空数组、布尔值或NULL 如果检查$myVariable是否包含某些数据的最佳方法是什么 现在我正在这样做: !空($myVariable) 它能涵盖所有情况吗? 或者我应该做($myVariable!=NULL&&!empty($myVariable)) 更新* “some data”指的是TRUE如果它是bool,而不是空数组,以及除N
$myVariable=someRanDomFunction($blah)
问题是someRanDomFunction()
可能返回数组、对象、空数组、布尔值或NULL
如果检查$myVariable
是否包含某些数据的最佳方法是什么
现在我正在这样做:
!空($myVariable)
它能涵盖所有情况吗?
或者我应该做($myVariable!=NULL&&!empty($myVariable))
更新*
“some data”指的是TRUE
如果它是bool,而不是空数组,以及除NULL以外的任何值
var_dump(empty(NULL)); // returns bool(true)
空的就够了。如果您说布尔值没有数据,请检查!是乌布尔。(empty(false)
还返回true
)
如果($result),则最好只使用;这应该足够了
或者你把什么叫做“一些数据”
更新:您需要什么:
php>var_dump(!empty([])
布尔(假)
php>var_dump(!empty(“”)
布尔(假)
php>var_dump(!empty(false))
布尔(假)
php>var_dump(!empty(true))
布尔(真)
php>var_dump(!empty(null))
布尔(假)
空的就够了。如果您说布尔值没有数据,请检查!是乌布尔。(empty(false)
还返回true
)
如果($result)
,则最好只使用;这应该足够了
或者你把什么叫做“一些数据”
更新:您需要什么:
php>var_dump(!empty([])
布尔(假)
php>var_dump(!empty(“”)
布尔(假)
php>var_dump(!empty(false))
布尔(假)
php>var_dump(!empty(true))
布尔(真)
php>var_dump(!empty(null))
布尔(假)
简单地执行隐式布尔检查将排除false
、array()
和null
if ($myVariable) {
//will execute as long as myVariable isn't an empty array, false, null, or 0 / '0'
}
!empty()
做了完全相同的事情,增加了对未定义变量/数组索引警告的抑制。不过它有点冗长。简单地执行隐式布尔检查将排除false
、array()
和null
if ($myVariable) {
//will execute as long as myVariable isn't an empty array, false, null, or 0 / '0'
}
!empty()
做了完全相同的事情,增加了对未定义变量/数组索引警告的抑制。不过它有点冗长。如果您检查null,则需要使用==代码>(严格检查)如果检查null,则需要使用==代码>(严格检查)如果您的someRanDomFunction可能返回数组、对象、bool或null,这是一种糟糕的方法。逻辑有问题
但是,您可以使用或(| |)运算符,而不是和
($myVariable != NULL || !empty($myVariable) || $myVariable == false)
如果您的someRanDomFunction可能返回数组、对象、bool或null,这是一种糟糕的方法。逻辑有问题
但是,您可以使用或(| |)运算符,而不是和
($myVariable != NULL || !empty($myVariable) || $myVariable == false)
如果您事先希望得到一些特定的数据,那么最好明确地检查它。PHP有一系列的函数,因此它们从is_uuz
基本上,empty是检查null,所以第二种方法是多余的。
您也可以使用isset,如果您事先希望得到一些特定的数据,最好明确地检查它。PHP有一系列的函数,因此它们从is_uuz
基本上,empty是检查null,所以第二种方法是多余的。
如果数组、对象和布尔值true是数据,其余:空数组、布尔值false或NULL不是“数据”,则也可以使用isset
那么,解决办法是:
$myVariable = someRanDomFunction($blah);
if(!empty($myVariable)) {
//...
}
如果数组、对象和布尔值true是数据,其余:空数组、布尔值false或NULL不是“数据”
那么,解决办法是:
$myVariable = someRanDomFunction($blah);
if(!empty($myVariable)) {
//...
}
…现在首先…返回值何时被视为“失败”?根据返回值,您仍然需要调用特定的求值例程,对吗?那么,为什么不一个接一个地手动检查is_array
等,直到你把它弄对为止?然后!空的正是您需要的;)对空的。没有别的了。请参阅下面我的答案什么是空的…现在,首先…返回值何时被视为“失败”?根据返回值,您仍然需要调用特定的求值例程,对吗?那么,为什么不一个接一个地手动检查is_array
等,直到你把它弄对为止?然后!空的正是您需要的;)对空的。没有别的了。请参见下面我的答案,内容为空!空('0')!==(bool)$myVariable
@bwoebi-你在说什么?[…]或内联注释中的0/'0'
。(你说空会做完全相同的事情)这两个值都是假的。啊。。。我弄糊涂了。。。当我太瞎而无法睁开眼睛看到命令行上的“!”时……!空('0')!==(bool)$myVariable
@bwoebi-你在说什么?[…]或内联注释中的0/'0'
。(你说空会做完全相同的事情)这两个值都是假的。啊。。。我弄糊涂了。。。当我太瞎以至于无法睁开眼睛看到命令行上的“!”时……什么是“数据”呢?什么是你的“数据”?