PHP exit()函數相關_PHP教程

來源:互聯網
上載者:User
今天遇到一個問題,運行下面代碼時報錯。

 

錯誤資訊為:

    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 2Warning: 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函數後,繼續執行後面的代碼,你可以用My Code親自實驗一下:

 

肯定會執行到fwrite函數的,開啟header.txt檔案,檢查時間!

對此,解決的辦法是,要在每一個header函數後面加上exit,保證當前頁面停止執行,進而轉向location指定的地址。

為了避免到處都是exit,可以寫一個專門用作轉向的函數,比如:

 

另,為了避免在header之前輸出body的內容,許多php架構都採用了php頁面尾部不寫?>的方式,因為有些人總習慣在?>後面添加一個換行,這真的是個不好的習慣。

http://www.bkjia.com/PHPjc/752451.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/752451.htmlTechArticle今天遇到一個問題,運行下面代碼時報錯。 ?phpsession_start();if(!isset($_SESSION['user']) || null === $_SESSION['user']){ header('location:login.php'); exit;}?> 錯誤...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.