我知道当我有连接数据库的php代码时:
<?php
$conn = new mysqli($host,$db_user,$db_password,$db_name);
if($conn->connect_errno==0)
{
...
header('Location: index.php');
}
?>
$conn->close();
在完成所有其他操作后将调用跳转到索引,因此将首先关闭连接。
但是,如果我想创建一个管理数据库操作的类呢? 例如,当我有:
$db->connect(); //connects to db
$db->dosomething(); //this function have header('Location: index.php') in it
$db->close();
会在dosomething()函数结束时调用index.php,还是在调用该函数的页面加载并且所有php操作都完成后调用?
答案 0 :(得分:0)
header功能实际上没有&#34;跳跃&#34;到另一个页面,它只是设置一个值,该值将成为服务器响应的一部分。它还可用于更改HTTP代码(如发出404)或内容类型(用于下载文件)。
将PHP代码视为生成&#34;文档&#34;可能会有所帮助。它将发送回Web浏览器。该文档以&#39; Header&#39;开头,然后通常包含&#39; Body&#39; (HTML和脚本将在哪里)。
致电时:
header('Location: index.php');
只需在您的回复中设置该值&#34;文档&#34;报头中。
Header和Body响应同时有效发送:PHP线程完成时。当所有您的代码已被执行时,或者您已使用exit();
明确停止该帖子时。
换句话说,您的代码赢了&#34;跳&#34;或停在header
行,它会继续执行并执行任何剩余的代码行。