站長(zhǎng)資訊網(wǎng)
        最全最豐富的資訊網(wǎng)站

        PHP函數(shù)運(yùn)用之怎么退出腳本程序

        在之前的文章《PHP函數(shù)運(yùn)用之怎么進(jìn)行進(jìn)制的轉(zhuǎn)換》中,我們了解使用PHP如何進(jìn)行二進(jìn)制數(shù)和十進(jìn)制數(shù)的相互轉(zhuǎn)換、十進(jìn)制數(shù)和十六進(jìn)制數(shù)的相互轉(zhuǎn)換、十進(jìn)制數(shù)和八進(jìn)制數(shù)的相互轉(zhuǎn)換,感興趣的朋友可以學(xué)習(xí)了解一下~

        本文的重點(diǎn)是“終止腳本的運(yùn)行,退出當(dāng)前程序”;我們需要通過(guò)一條語(yǔ)句告訴PHP引擎,此語(yǔ)句之后的其他語(yǔ)句不需要執(zhí)行了。

        那么怎么才能實(shí)現(xiàn)終止腳本執(zhí)行操作呢?其實(shí),PHP中提供了兩個(gè)內(nèi)置函數(shù)“die()”和“exit()就能完成這個(gè)操作!

        我們來(lái)看看下面兩個(gè)例子

        <?php $a = 1; $b = 9; echo $a; // 輸出 1 die(); // 終止腳本運(yùn)行,下面不在運(yùn)行 $sum = $a + $b; echo $sum; // 不被輸出 ?>

        輸出結(jié)果:

        PHP函數(shù)運(yùn)用之怎么退出腳本程序

        <?php $a = 1; $b = 9; echo $a; // 輸出 1 exit(); // 終止腳本運(yùn)行,下面不在運(yùn)行 $sum = $a + $b; echo $sum; // 不被輸出 ?>

        輸出結(jié)果:

        PHP函數(shù)運(yùn)用之怎么退出腳本程序

        可以看出,兩個(gè)程序都在第 5 行退出(終止執(zhí)行)了,并沒(méi)有執(zhí)行第 6 行和第 7 行的代碼。

        其實(shí) exit 和 die 這兩個(gè)名字指向的是同一個(gè)函數(shù),die() 是 exit() 函數(shù)的別名,兩個(gè)函數(shù)本質(zhì)上是一樣的。且die()和exit() 函數(shù)還接受一個(gè)可選參數(shù) $message ,用于在退出當(dāng)前腳本時(shí)輸出一個(gè)消息。

        exit($message); die($message);

        $message可以是一個(gè)具體的數(shù)值(int 類型),也可以是一個(gè)字符串(String類型),還可以不輸入任何參數(shù)。

        • 如果為 int 類型,那么該值會(huì)作為退出狀態(tài)碼,并且不會(huì)被打印輸出。(退出狀態(tài)碼的取值范圍在 0 至 254 之間。)

        <?php $a = 1; $b = 9; echo $a; // 輸出 1 exit(0); // 終止腳本運(yùn)行,下面不在運(yùn)行 $sum = $a + $b; echo $sum; // 不被輸出 ?>

        注意:不要使用被 PHP 保留的退出狀態(tài)碼 255。 狀態(tài)碼 0 用于成功中止程序。

        • 如果為String類型,則函數(shù)會(huì)打印該字符串并退出當(dāng)前腳本;

        <?php header("content-type:text/html;charset=utf-8"); $a = 1; $b = 9; echo $a; // 輸出 1 exit("<br>退出腳本"); // 終止腳本運(yùn)行,下面不在運(yùn)行 $sum = $a + $b; echo $sum; // 不被輸出 ?>

        PHP函數(shù)運(yùn)用之怎么退出腳本程序

        利用這個(gè)特性,當(dāng)程序出錯(cuò)時(shí),我們可以給它傳遞一個(gè)字符串,它會(huì)原樣輸出在系統(tǒng)終端上

        $fp=fopen("./readme.txt","r") or die("不能打開(kāi)該文件"); //這種情況下,如果fopen函數(shù)被調(diào)用返回布爾值false時(shí),die()將立即終止腳本,并馬上打印 //傳遞給它的字符串,“死前還能說(shuō)一兩句話”。

        說(shuō)明:雖然die()和exit()兩者相同,但通常使用中也有細(xì)微的選擇性。例如:

        當(dāng)傳遞給exit和die函數(shù)的值為0時(shí),意味著提前終止腳本的執(zhí)行,通常用exit()這個(gè)名字。

        當(dāng)程序出錯(cuò)時(shí),可以給它傳遞一個(gè)字符串,它會(huì)原樣輸出在系統(tǒng)終端上,通常使用die()這個(gè)名字。

        die()和exit() 函數(shù)可以用于循環(huán)語(yǔ)句,能起到跳出循環(huán)的作用

        <?php     for ($i=0; $i < 10; $i++) {         if ($i == 2) {             die;         } else {             echo '$i = '.$i.'<br>';         }     }     echo '循環(huán)外的一個(gè)輸出<br>'; ?>

        輸出結(jié)果:

        PHP函數(shù)運(yùn)用之怎么退出腳本程序

        終止程序的運(yùn)行除了可以使用die()和exit()函數(shù)外,還可以利用return語(yǔ)句來(lái)實(shí)現(xiàn)。

        首先我們要知道:return是語(yǔ)言結(jié)構(gòu)而不是函數(shù)。

        return:表示執(zhí)行到該處退出;如果是在函數(shù)中,表示退出函數(shù),如果是在腳本中,表示腳本停止執(zhí)行。

        • 如果在全局范圍中調(diào)用,則當(dāng)前腳本文件中止運(yùn)行。如果當(dāng)前腳本文件是被 include 的或者 require 的,則控制交回調(diào)用文件。此外,如果當(dāng)前腳本是被 include 的,則 return 的值會(huì)被當(dāng)作 include 調(diào)用的返回值,相應(yīng)的在主腳本文件中定義一個(gè)變量進(jìn)行返回值的接收。

        <?php //包含demo13_ stop. php $test = include ' demo13_ stop.php' ; var_ dump($test) ; ?>

        demo13_stop.php

        <?php    //終止腳本執(zhí)行    echo 'start';     //return    return '*'; ?>
        • 如果在主腳本文件中調(diào)用 return,則腳本中止運(yùn)行。

        總結(jié):

        PHP提供的終止腳本執(zhí)行的方式有三種:return,die(),exit()

        return一般用于結(jié)束當(dāng)前的函數(shù)/文件/腳本/其他的執(zhí)行,并將信息返回給調(diào)用他的其他 函數(shù)/文件/腳本/其他 。

        die()和exit()是使當(dāng)前執(zhí)行停止到這里,并且不再進(jìn)行下去。如果有參數(shù),會(huì)直接打印出來(lái)(只針對(duì)字符串)。

        那么如果剛好需要輸出的是一個(gè)數(shù)值變量,則可使用"{}"來(lái)包裹數(shù)值變量:

        <?php $a = 1; $b = 9; exit("{$a}"); // 終止腳本運(yùn)行,下面不在運(yùn)行 $sum = $a + $b; echo $sum; // 不被輸出 ?>

        輸出結(jié)果為:

        1

        好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦?!?→php視頻教程

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 66精品综合久久久久久久| 精品久久久久久久久久中文字幕 | 国产精品久久网| 2021久久国自产拍精品| 色偷偷88欧美精品久久久| www亚洲欲色成人久久精品| 久久久久国产精品熟女影院| 无码精品国产VA在线观看| 亚洲欧美日韩精品专区| 亚洲乱码精品久久久久..| 亚洲午夜国产精品无码老牛影视 | 久久九九青青国产精品| 2024国产精品极品色在线| 国产午夜精品一区二区| 日韩精品无码永久免费网站 | 久久久精品人妻一区二区三区四| 91精品视频网站| 国产精品福利片免费看| 亚洲精品无码不卡在线播HE| 91精品国产91久久久久福利| 国产精品爽黄69天堂a| 国内精品伊人久久久久影院对白| 中文字幕无码精品三级在线电影 | 熟女精品视频一区二区三区 | 国产精品 一区 在线| 亚洲精品无码久久久久| 欧美亚洲国产成人精品| 无码人妻精品一区二区在线视频| 欧美国产日韩精品| 亚洲国产一二三精品无码| 国产三级国产精品国产普男人| 精品国产乱码久久久久久1区2区| 国产成人精品免费大全| 精品人妻系列无码天堂| 热久久国产欧美一区二区精品| 青青草原综合久久大伊人精品| 十八18禁国产精品www| 精品乱子伦一区二区三区高清免费播放| 精品不卡一区二区| 亚洲精品综合久久| 欧美亚洲另类精品第一页|