何时在类的函数中调用标头

时间:2016-01-12 22:40:39

标签: php

我知道当我有连接数据库的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操作都完成后调用?

1 个答案:

答案 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,它会继续执行并执行任何剩余的代码行。