我正在处理更新个人资料页面,并且有类似的内容来更新用户详细信息:
account.php
include_once('update_account.php');
$verify_credentials = checkcredentials($email, $password);
if ($verify_credentials == 1)
{
$update_result = updateaccount($email, $newpassword);
}
update_account.php
session_start();
include_once('connect.php');
function updateaccount($email, $newpassword)
{
$actcode = md5(uniqid(rand()));
$update_query = mysqli_query($link, "UPDATE TABLE fu_user SET email = '$email', password = '$newpassword', is_activated='0', activation_code='$actcode' where email = '".$_SESSION['email']."'") or die ('Unable to Update');
if($update_query){
$_SESSION['email'] = $email;
$_SESSION['activated'] = '0';
$update_result = "Your Email and Password has been updated successfully.";
}
return $update_result;
}
那么现在如果查询执行失败并调用die()
会发生什么? updateaccount()
会从被调用的地方返回任何内容吗?
据我所知,die()
与exit()
完全相同,之后暂停执行,并调用析构函数进行清理过程。
上述表演的其他方式是:
$update_query = mysqli_query($link, "UPDATE TABLE fu_user SET email = '$email', password = '$newpassword',
is_activated='0', activation_code='$actcode' where email = '".$_SESSION['email']."'");
if ($update_query)
{
//Return Success
}
else
{
//Return Failure
}
答案 0 :(得分:3)
是,exit
或die
立即结束脚本执行。调用exit
的函数没有返回任何内容,因为执行在正常流程中不会继续执行。
之后你只写了destructors are called:
即使使用exit()停止脚本执行,也会调用析构函数。在析构函数中调用exit()将阻止剩余的关闭例程执行。
还有一个特例,你也可以在执行停止之前调用register a shutdown function:
在脚本执行完成或调用exit()后注册要执行的回调。
正如其他人所指出的,实际上处理错误状态比停止执行更好。我认为您不希望向用户显示带有错误消息的空白页面。从函数返回一个指示错误状态的值,或者更好地使用exceptions并在更高级别处理错误状态。
答案 1 :(得分:0)
die()是PHP中的内置函数。它用于打印 消息并退出当前的PHP脚本。相当于 PHP中的exit()函数。
语法:
die($message)
参数:此函数仅接受一个参数,该参数不是必须传递的参数。
$ message::此参数表示从脚本退出时要打印的消息。 返回值:没有返回值,但是在退出脚本时会打印给定消息。