在之前的文章《PHP函數(shù)運用之怎么進行進制的轉(zhuǎn)換》中,我們了解使用PHP如何進行二進制數(shù)和十進制數(shù)的相互轉(zhuǎn)換、十進制數(shù)和十六進制數(shù)的相互轉(zhuǎn)換、十進制數(shù)和八進制數(shù)的相互轉(zhuǎn)換,感興趣的朋友可以學(xué)習(xí)了解一下~
本文的重點是“終止腳本的運行,退出當(dāng)前程序”;我們需要通過一條語句告訴PHP引擎,此語句之后的其他語句不需要執(zhí)行了。
那么怎么才能實現(xiàn)終止腳本執(zhí)行操作呢?其實,PHP中提供了兩個內(nèi)置函數(shù)“die()
”和“exit()
”就能完成這個操作!
我們來看看下面兩個例子
<?php $a = 1; $b = 9; echo $a; // 輸出 1 die(); // 終止腳本運行,下面不在運行 $sum = $a + $b; echo $sum; // 不被輸出 ?>
輸出結(jié)果:
<?php $a = 1; $b = 9; echo $a; // 輸出 1 exit(); // 終止腳本運行,下面不在運行 $sum = $a + $b; echo $sum; // 不被輸出 ?>
輸出結(jié)果:
可以看出,兩個程序都在第 5 行退出(終止執(zhí)行)了,并沒有執(zhí)行第 6 行和第 7 行的代碼。
其實 exit 和 die 這兩個名字指向的是同一個函數(shù),die() 是 exit() 函數(shù)的別名,兩個函數(shù)本質(zhì)上是一樣的。且die()和exit() 函數(shù)還接受一個可選參數(shù) $message
,用于在退出當(dāng)前腳本時輸出一個消息。
exit($message); die($message);
$message可以是一個具體的數(shù)值(int 類型),也可以是一個字符串(String類型),還可以不輸入任何參數(shù)。
-
如果為 int 類型,那么該值會作為退出狀態(tài)碼,并且不會被打印輸出。(退出狀態(tài)碼的取值范圍在 0 至 254 之間。)
<?php $a = 1; $b = 9; echo $a; // 輸出 1 exit(0); // 終止腳本運行,下面不在運行 $sum = $a + $b; echo $sum; // 不被輸出 ?>
注意:不要使用被 PHP 保留的退出狀態(tài)碼 255。 狀態(tài)碼 0 用于成功中止程序。
-
如果為String類型,則函數(shù)會打印該字符串并退出當(dāng)前腳本;
<?php header("content-type:text/html;charset=utf-8"); $a = 1; $b = 9; echo $a; // 輸出 1 exit("<br>退出腳本"); // 終止腳本運行,下面不在運行 $sum = $a + $b; echo $sum; // 不被輸出 ?>
利用這個特性,當(dāng)程序出錯時,我們可以給它傳遞一個字符串,它會原樣輸出在系統(tǒng)終端上
$fp=fopen("./readme.txt","r") or die("不能打開該文件"); //這種情況下,如果fopen函數(shù)被調(diào)用返回布爾值false時,die()將立即終止腳本,并馬上打印 //傳遞給它的字符串,“死前還能說一兩句話”。
說明:雖然die()和exit()兩者相同,但通常使用中也有細微的選擇性。例如:
當(dāng)傳遞給exit和die函數(shù)的值為0時,意味著提前終止腳本的執(zhí)行,通常用exit()這個名字。
當(dāng)程序出錯時,可以給它傳遞一個字符串,它會原樣輸出在系統(tǒng)終端上,通常使用die()這個名字。
die()和exit() 函數(shù)可以用于循環(huán)語句,能起到跳出循環(huán)的作用
<?php for ($i=0; $i < 10; $i++) { if ($i == 2) { die; } else { echo '$i = '.$i.'<br>'; } } echo '循環(huán)外的一個輸出<br>'; ?>
輸出結(jié)果:
終止程序的運行除了可以使用die()和exit()函數(shù)外,還可以利用return
語句來實現(xiàn)。
首先我們要知道:return是語言結(jié)構(gòu)而不是函數(shù)。
return:表示執(zhí)行到該處退出;如果是在函數(shù)中,表示退出函數(shù),如果是在腳本中,表示腳本停止執(zhí)行。
-
如果在全局范圍中調(diào)用,則當(dāng)前腳本文件中止運行。如果當(dāng)前腳本文件是被 include 的或者 require 的,則控制交回調(diào)用文件。此外,如果當(dāng)前腳本是被 include 的,則 return 的值會被當(dāng)作 include 調(diào)用的返回值,相應(yīng)的在主腳本文件中定義一個變量進行返回值的接收。
<?php //包含demo13_ stop. php $test = include ' demo13_ stop.php' ; var_ dump($test) ; ?>
demo13_stop.php
<?php //終止腳本執(zhí)行 echo 'start'; //return return '*'; ?>
-
如果在主腳本文件中調(diào)用 return,則腳本中止運行。
總結(jié):
PHP提供的終止腳本執(zhí)行的方式有三種:return,die(),exit()
return一般用于結(jié)束當(dāng)前的函數(shù)/文件/腳本/其他的執(zhí)行,并將信息返回給調(diào)用他的其他 函數(shù)/文件/腳本/其他 。
die()和exit()是使當(dāng)前執(zhí)行停止到這里,并且不再進行下去。如果有參數(shù),會直接打印出來(只針對字符串)。
那么如果剛好需要輸出的是一個數(shù)值變量,則可使用"{}"
來包裹數(shù)值變量:
<?php $a = 1; $b = 9; exit("{$a}"); // 終止腳本運行,下面不在運行 $sum = $a + $b; echo $sum; // 不被輸出 ?>
輸出結(jié)果為:
1
好了就說到這里了,有其他想知道的,可以點擊這個哦。→ →php視頻教程