我正在写一个网页,它在一个表格中搜索,如果一切正常则显示数据,如果没有,则显示一条消息。代码看起来大致如下:
<?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我就会徘徊文件
提前感谢您提供的任何帮助。
答案 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语句返回结果。 如果您需要性能,可以关闭会话,以便可以在其上运行其他调用。