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 />";
?>