PHP終止腳本運行三種實現(xiàn)方法詳解
PHP中,終止腳本運行有三種方式:主腳本程序中使用return、腳本中使用exit()、die(),三者所在的腳本文件他們之后的代碼都不會執(zhí)行。
1.die( ) 和 exit( )
在PHP中,die() 和 exit()的用法和作用是一樣的。
這兩個函數(shù)可以有參數(shù),如果參數(shù)是一個字符串,則該函數(shù)會在中止腳本運行前輸出字符串。
如果參數(shù)是一個整數(shù),這個值被用做退出狀態(tài)。值的范圍在0到254之間。
退出狀態(tài)255由PHP保留,不會被使用;狀態(tài)0用于成功地終止程序。
注:PHP版本號大于4.2.0,括號里的值是整數(shù),不會輸出該參數(shù)。
因為die()和exit()的用法和作用一樣,我就拿die()來舉例子。
代碼示例1:
在主腳本中:
<?php
header(content-type:text/html;charset=utf-8);
$a = 1;
$b = 9;
echo $a; // 輸出 1
die; // 中止腳本運行,下面不在運行
$sum = $a + $b;
echo $sum; // 不被輸出
?>
運行結(jié)果:
1
代碼示例2:
在函數(shù)中:
<?php
header("content-type:text/html;charset=utf-8");
function A(){
echo "2"; // 輸出 2
die("error"); // 中止腳本運行,并輸出括號里的字符串
}
echo "1"; // 先輸出 1
A(); // 調(diào)用函數(shù)
echo "錢難有"; // 不被輸出
?>
運行結(jié)果:
1
2
error
解釋一下例2:"錢難有"沒有被輸出呢?
首先PHP的執(zhí)行機制是從上到下。
第一步先聲明函數(shù)
第二步執(zhí)行echo語句輸出1
第三步調(diào)用函數(shù)A,輸出2,執(zhí)行 die 中止腳本運行 并輸出error
小結(jié): die( ) 和 exit( ) 不管是在主腳本或函數(shù)里都是中止腳本運行的,后面的代碼都不在執(zhí)行。
2. return
首先return是語言結(jié)構(gòu),它不是函數(shù)。它可以有返回值。
如果在主腳本中調(diào)用,則當前腳本文件中止運行。如果當前腳本文件是被 include 的或者 require 的,則控制交回調(diào)用文件。此外,如果當前腳本是被 include 的,則 return 的值會被當作 include 調(diào)用的返回值,相應的在主腳本文件中定義一個變量進行返回值的接收。
如果一個函數(shù)中包含return 語句,當調(diào)用此函數(shù)時,函數(shù)的執(zhí)行只會進行到return這一步,return之后的語句都不會執(zhí)行,并將return的參數(shù)作為函數(shù)的值返回。
代碼示例1:
主腳本中:
<?php
header("content-type:text/html;charset=utf-8");
$name = "錢難有";
echo "紅軍不怕遠征難"; // 輸出
return; // 中止腳本運行
echo $name; // 不被輸出
?>
運行結(jié)果:
紅軍不怕遠征難
代碼示例2:
函數(shù)體中:
<?php
header("content-type:text/html;charset=utf-8");
function A(){
$a = 5; $b = 4; // 定義兩個局部變量
return $a + $b; // 返回 $a+$b 的值,并結(jié)束當前腳本
echo $a; // $a不在被輸出
}
$sum = A(); // 調(diào)用函數(shù) 并用變量接收 return 的返回值
echo $sum; // 輸出 $sum
echo "錢難有"; // 輸出 "錢難有"
?>
運行結(jié)果:
9
錢難有
小結(jié): 在主腳本中調(diào)用 return ,則腳本中止運行。在函數(shù)體調(diào)用return,如果有返回值則返回,函數(shù)里的代碼不在執(zhí)行。而主腳本的代碼依然會運行。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP操作文件類的函數(shù)代碼(文件和文件夾創(chuàng)建,復制,移動和刪除)
PHP操作文件類(文件和文件夾創(chuàng)建,復制,移動和刪除) ,使用也比較方便,需要的朋友可以參考下。2011-11-11PHPStorm+Xdebug進行emote Debug時無法進入斷點問題排查
這篇文章主要介紹了PHPStorm+Xdebug進行emote Debug時無法進入斷點問題排查,遇到類似問題的同學,可以詳細參考下2021-04-04PHP實現(xiàn)的注冊,登錄及查詢用戶資料功能API接口示例
這篇文章主要介紹了PHP實現(xiàn)的注冊,登錄及查詢用戶資料功能API接口,結(jié)合具體實例形式分析了php服務器端用戶注冊、登陸、查詢及curl登陸查詢功能實現(xiàn)技巧,需要的朋友可以參考下2017-06-06