PHP函数返回值,如何检查

PHP函数返回值,如何检查,php,oop,Php,Oop,首先是一个简单的例子: function doReturnSomething() { // some logic if ($resultFromLogic) { return Default_Model_Something; } return false; } 如您所见,此函数返回模型或false。现在,让我们从其他地方调用此函数: $something = doReturnSomething(); 不,我想用if语句检查变量$somethi

首先是一个简单的例子:

function doReturnSomething()
{
    // some logic
    if ($resultFromLogic) {
        return Default_Model_Something;
    }

    return false;
}
如您所见,此函数返回模型或false。现在,让我们从其他地方调用此函数:

$something = doReturnSomething();
不,我想用if语句检查变量$something。比如说:

if (false !== $something) {}

这种情况下是否有“最佳实践”?检查是否存在错误或使用实例。这种特殊的方式有什么后果吗


感谢是前进

根据返回的内容,您可以执行以下操作:

if(doReturnSomething()) {}

当返回一个对象时,它将返回true(默认的模型),当返回false或null值时,它将返回false。在处理数字时不要使用这种方法,因为“0”将计算为false。

我认为从PHP5.4开始,在逻辑语句中威胁函数返回时会出现一个特别注意的错误

好的做法是将函数的结果保存到变量中,然后在任何逻辑语句中使用它


<?php function my($a, $b ,$c){

    $total = $a + $b - $c;      return $total;       }

$myNumber = 0;

echo "Before the function, myNumber = ". $myNumber ."<br />";

$myNumber = my(3, 4, 1); // Store the result of mySum in $myNumber

echo "After the function, myNumber = " . $myNumber ."<br />";

?>

不是直接针对这个问题,但我建议返回
null
而不是bollean,因为a)
null
相当于“nothing”,这似乎非常适合这里,b)可能存在这样的情况,返回值应该是布尔值,然后您无法区分“nothing”
false
和“value”
false
这种方法适用于数字,只要(您提到过)
0
不是有效值。例如,ID通常以
1
开头,这是正确的。使用instanceof时,我们可以确保类Default\u Model\u某物中有特定的方法/属性可用。使用instanceof时有什么缺点吗?如果“false!”==“一种更通用的键入方式?嘿,如果我弄错了,很抱歉,但是如果
doReturnSomething()
返回有效的模型,并且我必须在
if
大括号中访问它,那该怎么办呢?最好像
$something=doReturnSomething();
然后
if($something){}
当然可以……当您在多个位置需要它时,您应该将它存储在一个变量中,然后检查变量。@VincentvanDijk:instanceof也可以工作,但它在灵活性等方面有限制。但是,当您必须依赖某些函数时,我想最好创建某种类型的接口,这样您就可以直接插入新课程。我不认为有这样的通知。你可以在网上试试:-你答案中的另一部分听起来不错,但是也许你可以告诉我为什么?这与所问的问题有什么关系?
if(doReturnSomething()) {}
<?php function my($a, $b ,$c){

    $total = $a + $b - $c;      return $total;       }

$myNumber = 0;

echo "Before the function, myNumber = ". $myNumber ."<br />";

$myNumber = my(3, 4, 1); // Store the result of mySum in $myNumber

echo "After the function, myNumber = " . $myNumber ."<br />";

?>