PHP检查有效函数返回

时间:2013-04-08 20:28:32

标签: php function return

我有这段代码:

$myVariable = someRanDomFunction($blah)

问题是someRanDomFunction()可能返回数组,对象,空数组,布尔值或NULL。

检查$myVariable是否包含某些数据的最佳方式会怎样?

现在我正在这样做:

!empty($myVariable )

它会涵盖所有案件吗?  或者我应该($myVariable != NULL && !empty($myVariable ))

UPDATE *

“某些数据”我的意思是TRUE,如果它的bool,非空数组,以及除NULL以外的任何值

6 个答案:

答案 0 :(得分:2)

var_dump(empty(NULL)); // returns bool(true)

空了就够了。如果你说布尔值没有数据,也请检查!is_bool。 (empty(false)也会返回true

或者更好,仅使用if ($result);这应该足够了。

或者您称之为“某些数据”?

更新:你需要什么:

  

php>的var_dump(空([])!);

     
    

布尔(假)

  
     

php>的var_dump(空( “”)!);

     
    

布尔(假)

  
     

php>的var_dump(空(假)!);

     
    

布尔(假)

  
     

php>的var_dump(空(真)!);

     
    

BOOL(真)

  
     

php>的var_dump(空(NULL)!);

     
    

布尔(假)

  

答案 1 :(得分:1)

简单地执行隐式布尔检查将排除falsearray()null

if ($myVariable) {
    //will execute as long as myVariable isn't an empty array, false, null, or 0 / '0'
}

!empty()做了完全相同的事情,添加了对未定义变量/数组索引的警告的抑制。不过,这有点啰嗦。

答案 2 :(得分:0)

如果您检查空,则需要使用!==(严格检查http://php.net/manual/en/language.operators.comparison.php

答案 3 :(得分:0)

如果你的someRanDomFunction可能返回一个数组,对象,bool或null,这是不好的方法。逻辑错了。

但是,您可能使用 OR (||)运算符,而不是AND。

($myVariable != NULL || !empty($myVariable) || $myVariable == false)

答案 4 :(得分:0)

如果您预先预计某些特定数据,最好明确检查一下。 PHP有很多功能,所以它们以is_

开头

基本上空是检查null,所以你的第二种方式是多余的。 您也可以使用isset

答案 5 :(得分:0)

如果数组,对象和布尔值true是数据AND其余:空数组,布尔值false或NULL,不是“数据”。

那么解决方案就是这个:

$myVariable = someRanDomFunction($blah);

if(!empty($myVariable)) {
//...
}