search

Home  >  Q&A  >  body text

做ajax请求后端PHP的时候最后输出数据为什么我看别人代码都是exit()而非echo

我自己平常写的都是echo $data
但是我看别人的代码,很多都是exit($data)

PHP中文网PHP中文网2820 days ago580

reply all(4)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 14:58:42

    一般情况下应该用 echo

    exit() 的作用是强制终止脚本,用它输出结果附带的好处就是可以避免后续代码被执行
    例如这种情况:

    <?php
    $arg = 1;
    
    if($arg == 0) {
      exit('failed');
    } elseif($arg == 1) {
      echo 'oooooh!';
    } elseif($arg == 2) {
      echo 'yeeeeeh!'
    }
    
    echo " It's wonderful";
    ?>
    

    当 $arg 为 0 时,只输出 'failed' 不输出 "It's wonderful"

    不过使用 exit() 有一个要注意的地方:
    如果传给它的是一个数字,那么这个数字会被当作退出状态码,不会输出给客户端
    具体可以看官方描述:http://cn2.php.net/exit

    reply
    0
  • 阿神

    阿神2017-04-10 14:58:42

    因为一般这种接口API在输出结果之后就算是完结了,为了防止一些逻辑上的问题导致后面的代码继续进行,干脆就用exit()在此处输出结果后停止脚本。以上是身为die党的一些个人感悟。

    reply
    0
  • 阿神

    阿神2017-04-10 14:58:42

    反正我喜欢exit
    1.减少业务逻辑判断的压力
    2.完成后立即退出php脚本执行

    reply
    0
  • 高洛峰

    高洛峰2017-04-10 14:58:42

    exit() die()个人经验主要就是反正输出后还有其他输出,影响客户端正常接收解析。具体实验可以试试,在输出完之后再有输出,客户端接收到的数据就错误了,小的在过往接收别人的项目时曾经遇到过,其他朋友说得也是同样道理。

    reply
    0
  • Cancelreply