亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

php中die()與exit()的真正區別

2024-09-04 11:49:16
字體:
來源:轉載
供稿:網友

php中die()與exit()的真正區別是什么因,我們百度一下發現die是退出并釋放內存,exit是退出但不釋放內存了,那么真的是這樣嗎,下面來看看吧。

網上搜索die與exit兩個函數的區別,大部分的”標準答案”都是說die是退出并釋放內存,exit是退出但不釋放內存。

這個解釋顯然是錯的,PHP手冊中已經說過“die — Equivalent to exit().This language construct is equivalent to exit(). ”兩者只是別名關系,除此之外完全一樣。

不過我還是很好奇,決定從源碼中找找線索,看看php是如何處理的這個“別名”。

首先要清楚一點,die和exit都是”language construct”而非函數,網上也有很多說某某某有返回值是函數,某某無返回值是結構,很多初學者總搞不清語言結構和函數的區別,用通俗點的話講,語言結構可以理解為語法本身的一種標識。像+、-、*、/這些也都是語言結構,if、else、for、while,這些都是語言結構。是語法本身的一部分。任何語言都會有這些東西,因為計算機看到+不會認為是應該做加法的。這需要編譯器轉換為機器碼也就是cpu能夠識別的指令集。

php執行源碼時的整個過程為,首先按照zend_language_scanner.l中定義的,將源碼中的echo、if之類的語言結構轉換成類似的T_ECHO、T_IF這些token,并且會去掉源碼中的空格,注釋這些與程序邏輯無關的字符。,就形成了一些簡短的表達式,這就是詞法分析階段。然后會按照zend_vm_opcodes.h中定義的,將這些token轉換為op code。然后一條一行的執行這些op code。

上面大概解釋了php的編譯和執行的過程,以及語言結構的定義。下面進入正題。

我們也應該記得,php中有很多別名函數,比如:implode和join。無論是別名函數還是別名語言結構,從實際效果角度講,都是一樣的,不過源碼的處理方式肯定還是不一樣的。

我們先看看這個別名語言結構是如何處理的,稍后再看別名函數。

zend_language_parser.c中,定義了一個宏

#define T_EXIT 300

還定義了一個enum,里面也有,代碼如下:

  1. enum yytokentype { 
  2. … 
  3. T_EXIT = 300, 
  4. …. 

這里告訴我們,T_EXIT這個token,它的code是300。

再看zend_language_scanner.l,其中有這么幾行代碼。

  1. <ST_IN_SCRIPTING>”exit” { 
  2. return T_EXIT; 
  3. <ST_IN_SCRIPTING>”die” { 
  4. return T_EXIT; 

很明顯,php做詞法分析時,無論遇到exit還是die,都會返回T_EXIT這個token。從這里酒可以證明,die和exit,再php內部處理是完全一樣的。

也可以用下列php代碼來確定,代碼如下:

var_dump(token_get_all(“<?php die;exit;?>”));

返回的結果中die和exit對應的token code,都是300。

現在關于die和exit的問題,我想大家應該可以確定了,只是名字不同,效果都是一樣的,沒有所謂的卸不卸載內存的問題。

PHP手冊:die()Equivalent to exit()。

說明:die()和exit()都是中止腳本執行函數;其實exit和die這兩個名字指向的是同一個函數,die()是exit()函數的別名。該函數只接受一個參數,可以是一個程序返回的數值或是一個字符串,也可以不輸入參數,結果沒有返回值。

參考:雖然兩者相同,但通常使用中也有細微的選擇性。例如:

當傳遞給exit和die函數的值為0時,意味著提前終止腳本的執行,通常用exit()這個名字,代碼如下:

  1. echo "1111"
  2. exit(0); 
  3. echo "2222"
  4. //22222不會被輸出,因為程序運行到exit(0)時,腳本已經被提前終止,“馬上斷氣”。 

當程序出錯時,可以給它傳遞一個字符串,它會原樣輸出在系統終端上,通常使用die()這個名字,代碼如下:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.久久久久| 日韩一区二区欧美| 国产91网红主播在线观看| 欧美国产乱视频| 亚洲激情久久久| 91精品视频一区| 久久99久久99精品中文字幕| 国产精品高清网站| 91久久精品国产91久久性色| 国产精品久久久久久久av电影| 91视频8mav| 国产精品中文字幕久久久| 欧美性猛交99久久久久99按摩| 国产精品专区第二| 亚洲电影av在线| 午夜精品久久久久久久久久久久| 国产91露脸中文字幕在线| 78m国产成人精品视频| 狠狠色狠色综合曰曰| 亚洲激情 国产| 欧美电影在线免费观看网站| 国产一区二区三区在线播放免费观看| 亚洲人成77777在线观看网| 国产一区二区三区在线观看视频| 亚洲成人久久电影| 久久99青青精品免费观看| 国产精品日日做人人爱| 欧美日韩国产中字| 欧美激情伊人电影| 欧美日韩精品二区| 久久精品视频网站| 人人澡人人澡人人看欧美| 91亚洲永久免费精品| 国产精品久久久久久影视| 国产精品美女在线| 在线日韩第一页| 成人国内精品久久久久一区| 亚洲视频在线免费观看| 91国产视频在线播放| 欧美裸体男粗大视频在线观看| 国产精品999999| 日韩最新在线视频| 久久成人精品视频| 俺去啦;欧美日韩| 高潮白浆女日韩av免费看| 久久天天躁狠狠躁老女人| 91精品久久久久久久| 国产精品国模在线| 欧美人与物videos| 国产成人av在线| 97在线观看视频国产| 国产成人aa精品一区在线播放| 欧美中文字幕视频在线观看| 川上优av一区二区线观看| 精品国产自在精品国产浪潮| 欧美一区二区大胆人体摄影专业网站| 91av网站在线播放| 最近2019中文免费高清视频观看www99| 欧美综合激情网| 中文字幕亚洲一区二区三区| 日韩一区二区在线视频| 久久精品国产欧美激情| 国产精品欧美风情| xxxxx91麻豆| 91免费综合在线| 97成人精品区在线播放| 欧美午夜精品久久久久久久| 中文字幕亚洲无线码在线一区| 久久精品一本久久99精品| www国产精品com| 亚洲a级在线播放观看| 日韩一区二区福利| 亚洲一区亚洲二区| 88xx成人精品| 热re91久久精品国99热蜜臀| 成人免费激情视频| 亚洲老板91色精品久久| 亚洲free嫩bbb| 亚洲999一在线观看www| 亚洲偷熟乱区亚洲香蕉av| 久久99精品视频一区97| 97国产suv精品一区二区62| 精品国偷自产在线| 91久久精品美女| 不卡av电影在线观看| 国产一区二区丝袜| 欧美成人免费播放| 欧美精品videosex极品1| 欧美日韩亚洲精品一区二区三区| 亚洲国产欧美一区二区三区同亚洲| 色吧影院999| 久久中文字幕国产| 疯狂做受xxxx高潮欧美日本| 不卡在线观看电视剧完整版| 欧美视频13p| 国产日韩欧美中文| 亚洲午夜小视频| 国产精品极品在线| 91po在线观看91精品国产性色| 爱福利视频一区| 久久av红桃一区二区小说| 成人亲热视频网站| 欧美高清视频在线观看| 国产精品吴梦梦| 国产视频在线一区二区| 国产精品久久91| 国产精品久久久久久久久免费| 欧美国产第一页| 精品国产乱码久久久久酒店| 色综合亚洲精品激情狠狠| 91精品国产色综合久久不卡98| 国产视频精品免费播放| 亚洲视频在线看| 91爱爱小视频k| 成人免费视频在线观看超级碰| 91麻豆桃色免费看| 中文字幕成人精品久久不卡| 成人做爽爽免费视频| 欧美第一黄色网| 一本一本久久a久久精品牛牛影视| 国产精品91视频| 亚洲美女视频网| 98精品国产高清在线xxxx天堂| 欧美性精品220| 欧美国产亚洲精品久久久8v| 国产一区二区三区中文| 亚洲精品综合精品自拍| 性欧美办公室18xxxxhd| 国产一区二区三区毛片| 国产精品 欧美在线| 欧美成人精品一区二区| 日韩欧美亚洲一二三区| 亚洲a一级视频| 永久555www成人免费| 欧美电影免费在线观看| 欧美性xxxx极品hd欧美风情| 大桥未久av一区二区三区| 日韩免费观看网站| 欧美性视频精品| 成人欧美一区二区三区黑人孕妇| 欧美日韩激情网| 性欧美办公室18xxxxhd| 亚洲图片欧美日产| 97超级碰碰碰久久久| 欧美精品18videos性欧美| 欧美视频第一页| 亚洲石原莉奈一区二区在线观看| 亚洲国产精久久久久久久| 九九热这里只有精品免费看| 久久久久久一区二区三区| 欧美日韩国产91| 日韩激情第一页| 欧美成人自拍视频| 欧美午夜女人视频在线| 精品视频在线观看日韩| 日韩成人xxxx| 国产精品看片资源| 亚洲欧洲日本专区| 夜色77av精品影院| 国产精品扒开腿做爽爽爽视频| 日韩电影中文字幕| 国产精品久久久久91| 一区二区国产精品视频| 久久免费在线观看|