我有一些方法用于访问数据库值。若我在它给出的null值和错误上运行一个方法,这就是假设会发生的情况,但我希望设置这样的条件,即使函数失败,它也应该继续到数据库中的下一行。
$i=0;
foreach($data as $Data){
$fax = $Data->getFax()->getFreeFormNumber();
echo $i." Fax no. of Customer ".$fax;
$i++;
}
输出为:-
客户传真号码5678
客户传真号码9899
- 客户传真号7777
但是,数据库有19行,第5行数据库中有传真号,第4行传真号为空(空)
如何将代码打印到第5行。?我需要满足什么条件。?
在调用getFreeFormNumber()
之前,您必须检查getFax
是否返回null
。下面是如何实现这一目标的一个例子。
$i=0;
foreach($data as $Data){
$fax = $Data->getFax();
if(null === $fax){
continue; // No fax so continue to the next item
}
echo $i." Fax no. of Customer ".$fax->getFreeFormNumber();
$i++;
}
要使其更加安全,请重复检查getFreeFormNumber()
的结果。然后您可以确定您没有处理null
值。
也许getFax()
甚至应该返回某种类型的对象/类,在这种情况下,将null === $fax
更改为!($fax instanceOf <theClassName>)
。通过这种方式,您可以确保获得具有要调用的功能的传真对象。
您可以使用isset
,例如:
if (isset($faxNo)){
echo $faxNo;
}else {
echo "null";
}