php:退出php脚本后如何继续执行

时间:2015-05-05 08:22:07

标签: php html5

我正在写一个网页,它在一个表格中搜索,如果一切正常则显示数据,如果没有,则显示一条消息。代码看起来大致如下:

<?php session_start(); ?>
<html><head> ..... </head>
    <body>
         <form action="search.php" method="post"> {parameters for searching} </form
         <?php include_once('display_results.php');?>
         <?php if (isset($_SESSION['message'])) {
                   echo "<script type=\"text/javascript\">alert(\"".$_SESSION['message']."\")</script>";
                   unset($_SESSION['message']);
               } ?>
     </body>
</html>

display_results.php如下所示:

<?php
     //query table get results build output and if there was an error call do_exit($message)

 function do_exit($message) {
    //unset objects close connections and misc finalizations
    $_SESSION['message'] = $message;
    die();
 }

我的问题是,当调用die()时,似乎不仅display_results.php脚本停止了,而且原始的php文件也停止了,所以即使设置了消息,也没有警报。另一方面,如果我删除了die()语句,并且在每次执行do_exit()之后执行return,这将正常工作。

现在这不是一个很大的问题,我可以这样做,以便我在每个do_exit()之后调用return但是如果有办法退出脚本但是继续执行原始php我就会徘徊文件

提前感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:2)

你为什么要那样做?只需正确退出一个函数(返回)。可以执行:return do_exit();并使用die()do_exist()替换return;函数中的return false;(如果要返回值)。< / p>

die()(或exit())总是结束脚本执行,而不仅仅是执行一个脚本文件或函数,这些都是无用的。

答案 1 :(得分:1)

为什么不在return false;结束时使用function do_exit()

答案 2 :(得分:0)

你根本不需要调用die()。让脚本自然结束。我假设您使用echo或print语句返回结果。 如果您需要性能,可以关闭会话,以便可以在其上运行其他调用。