在php中exit()與die()我常常分不清楚他們的區(qū)別是什么,當(dāng)然也沒(méi)想去了解,因?yàn)楦杏X(jué)都是一樣的,今天看了下面方法之后才發(fā)現(xiàn)原來(lái)他們有這么大的區(qū)別,下面我來(lái)和大家一起再看一篇吧.
先思考一個(gè)問(wèn)題,如下代碼會(huì)向頁(yè)面顯示什么?
- <?php
- die(123);
- ?>
曾經(jīng)有段時(shí)間我一直認(rèn)為 頁(yè)面會(huì)顯示 123,但實(shí)踐結(jié)果告訴我,答案錯(cuò)了,頁(yè)面一片空白,一直不知道為什么,死活不輸出123,為了讓頁(yè)面輸出123,我把它修改為如下代碼:
- <?php
- echo '123';
- die();
- ?>
PHP中exit()與die()的區(qū)別:
PHP手冊(cè):die()Equivalent to exit()。
說(shuō)明:die()和exit()都是中止腳本執(zhí)行函數(shù),其實(shí)exit和die這兩個(gè)名字指向的是同一個(gè)函數(shù),die()是exit()函數(shù)的別名,該函數(shù)只接受一個(gè)參數(shù),可以是一個(gè)程序返回的數(shù)值或是一個(gè)字符串,也可以不輸入?yún)?shù),結(jié)果沒(méi)有返回值.
參考:雖然兩者相同,但通常使用中也有細(xì)微的選擇性,例如:當(dāng)傳遞給exit和die函數(shù)的值為0時(shí),意味著提前終止腳本的執(zhí)行,通常用exit()這個(gè)名字.
PHP實(shí)例代碼如下:
- echo "1111";
- exit(0);
- echo "2222";
22222不會(huì)被輸出,因?yàn)槌绦蜻\(yùn)行到exit(0)時(shí),腳本已經(jīng)被提前終止,“馬上斷氣”,當(dāng)程序出錯(cuò)時(shí),可以給它傳遞一個(gè)字符串,它會(huì)原樣輸出在系統(tǒng)終端上,通常使用die()這個(gè)名字.代碼如下:
$fp=fopen("./readme.txt","r") or die("不能打開(kāi)該文件");
這種情況下,如果fopen函數(shù)被調(diào)用返回布爾值false時(shí),die()將立即終止腳本,并馬上打印,傳遞給它的字符串,“結(jié)束之前還能說(shuō)一兩句話”,回到前面這個(gè)話題,下面代碼為什么不輸出 123 到頁(yè)面?
- <?php
- die(123);
- // 或 exit(123);
- >
自己總結(jié):
1、功能上,die() 就等同于 exit();
2、PHP有多種運(yùn)行方式,即可網(wǎng)站形式,也可腳本形式(不需要Web服務(wù)器).
當(dāng)PHP為腳本形式運(yùn)行時(shí),建議用exit(),比如說(shuō) Bash Shell腳本語(yǔ)言,當(dāng)它要停止運(yùn)行時(shí),會(huì)用 exit()函數(shù)終止腳本,并允許輸出點(diǎn)內(nèi)容到運(yùn)行環(huán)境(一般是存儲(chǔ)到一個(gè)全局變量中),但輸出的內(nèi)容只能是 數(shù)字,表示“命令的結(jié)束狀態(tài)”.
也就是說(shuō),exit(123)只是輸出一種運(yùn)行狀態(tài)123,而不是真的要向控制臺(tái)輸出 123,如果要向控制臺(tái)輸出123,代碼得改成如下形式:
- <?php
- exit('123');
- ?>
當(dāng)PHP為網(wǎng)站形式運(yùn)行時(shí),建議用die(),但此時(shí) die(數(shù)字),就沒(méi)啥意義,因?yàn)樗粫?huì)向頁(yè)面輸出 數(shù)字 字符串,也就是說(shuō),如果想讓頁(yè)面終止并且輸出數(shù)字的話,得改成如下形式:
新聞熱點(diǎn)
疑難解答