0

我有一组 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 将其作为字符串打印在页面上吗?

4

2 回答 2

2

不要多次调用您的函数。将其返回值保存在变量中:

$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 异常,以寻找一种可能更干净(但可能更慢)的错误处理解决方案。

于 2012-08-23T03:48:37.953 回答
0

试试这个:

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 的新手。:) 抛出异常而不是返回错误消息字符串也是一种好习惯。

于 2012-08-23T03:57:42.960 回答