dongmei1988 2012-08-23 03:43
浏览 40
已采纳

php打印字符串从函数返回

I have a set of php functions designed to return error text if they fail. They aren't returning the text. My function looks like this:

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;

}

I call my function in code like so:

if(poop() === true){
    // do things that require poop
} else {
    echo poop();
}

I thought this would return the 'e:' string as a string and print it to the page in the event that poop() did not return a boolean true value, but in reality it is not. I'm wondering if this is because of a fault in the remainder of my code or if this functionality doesn't actually exist in PHP? How should I go about ensuring I have an error returned from all my function checks? Should I use echo instead of return to print it as a string on the page?

  • 写回答

2条回答 默认 最新

  • dongyong3223 2012-08-23 03:48
    关注

    Don't call your function more than once. Save its return value in a variable:

    $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.
    }
    

    You may also want to look into PHP exceptions for a potentially cleaner — but probably slower — solution to error handling.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c