PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

PHP exit()函数相关_PHP教程

原创
2016-07-13 10:33:37 596浏览

今天遇到一个问题,运行下面代码时报错。


错误信息为:

    
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\PHPProjects\agilelite\index.php:1) in D:\PHPProjects\agilelite\index.php on line 2
Warning: Cannot modify header information - headers already sent by (output started at D:\PHPProjects\agilelite\index.php:1) in D:\PHPProjects\agilelite\index.php on line 6

为了解决这个问题,研究一下exit这个函数的用法。

return、break和contiue是语言结构,就如同if语句之类的,但是exit却是个函数。exit函数的作用是输出一则消息并且终止当前脚本。

如果一段文本中包括多个以 ?>结束的脚本,则exit退出当前所在脚本。

比如一篇php文本包括一下代码,则输出为 NowaMagic。



exit函数语法格式如下(void表示没有返回值):

void exit ([ string $status ] )
void exit ( int $status )

如果status是一段字符串,这个函数在脚本退出前打印status。

如果status是一个整数,这个整数会被作为退出状态。退出状态应该从0到254,退出状态255被PHP保留并禁止使用。状态0被用来表示成功的终止程序。

在header跳转后使用exit

PHP的header可以输出http头部信息,前提是,在header之前不能输出任何内容,因为所有的内容都作为http的body输出给客户端了,一旦有body的内容,就不可能再添加任何head部分的信息。

header函数的一个常用的方式就是用来做转向,redirect。

比如,我需要转到某个地址,只要执行下述代码:


浏览器会收到一个302的http状态码,告诉他这个内容已经被转移了。

重要的是,php会在调用header函数后,继续执行后面的代码,你可以用我的代码亲自试验一下:


肯定会执行到fwrite函数的,打开header.txt文件,检查时间!

对此,解决的办法是,要在每一个header函数后面加上exit,保证当前页面停止执行,进而转向location指定的地址。

为了避免到处都是exit,可以写一个专门用作转向的函数,比如:


另,为了避免在header之前输出body的内容,许多php框架都采用了php页面尾部不写?>的方式,因为有些人总习惯在?>后面添加一个换行,这真的是个不好的习惯。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/752451.htmlTechArticle今天遇到一个问题,运行下面代码时报错。 ?phpsession_start();if(!isset($_SESSION['user']) || null === $_SESSION['user']){ header('location:login.php'); exit;}?> 错误...
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。