我有一组php函数,设计用于在失败时返回错误文本。他们不回短信。我的功能如下:
function poop(){
$stuff = stuff;
$things = things;
if($stuff != stuff){
return 'e: stuff does not equal stuff!';
}
if($things != things){
return 'e: things do not equal things!';
}
// if we got this far all is good!
return true;
}
我用这样的代码调用我的函数:
if(poop() === true){
// do things that require poop
} else {
echo poop();
}
我以为这会将"e:"字符串作为字符串返回,并在poop()没有返回布尔真值的情况下将其打印到页面上,但事实并非如此。我想知道这是因为我代码的剩余部分出现了错误,还是PHP中实际上不存在此功能?我应该如何确保我的所有功能检查都返回了一个错误?我应该使用echo而不是return将其作为字符串打印在页面上吗?
不要多次调用函数。将其返回值保存在变量中:
$ret = poop();
if ($ret === true) {
// Do things that require the success.
} else {
// Log your error message here:
echo "An error occurred: ".$ret;
logMessage($ret);
// etc.
}
您可能还想研究PHP异常,以找到一个可能更干净但可能更慢的错误处理解决方案。
试试这个:
if( poop() !== TRUE )
echo poop();
我在这个代码上使用了它:
function poop(){
$stuff = 'stuff';
$things = 'things';
// this is where we have wrong value
if($stuff != 'stuff1'){
return 'e: stuff does not equal stuff!';
}
if($things != 'things'){
return 'e: things do not equal things!';
}
// if we got this far all is good!
return true;
}
我希望我已经理解你了,我也是PHP的新手抛出异常而不是返回错误消息字符串也是一种很好的做法。