一切的不同都是因為: is_null是函數(shù), isset是語句.is " /> 国产免费黄色,黄色大片在线看,国产videosgratis杂交人禽交

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

解析isset與is_null的區(qū)別

isset和is_null啥區(qū)別,
看手冊上講的話, isset和is_null的功能幾乎完全”相反的一樣”..
是不是isset就是一個is_null的相反的別名?
誒, 要說區(qū)別, 那還真的是很多~

一切的不同都是因為: is_null是函數(shù), isset是語句.
isset是語句, 和echo, print一樣, 是php本身的一種語言結(jié)構(gòu).
而is_null是函數(shù), 和我們一般的函數(shù)一樣, 可以做為可變函數(shù)調(diào)用.
你也許會說, 好了,好了,我知道函數(shù)和語句的區(qū)別, 但到底是TMD什么區(qū)別?
誒, 所謂語句,語言結(jié)構(gòu), 就是說, 是語言本身支持的語句, 標(biāo)識符.
比如, for, foreach, continue 等等, 它們在語法分析的時刻就被”抹掉”(邏輯上替代了)了.
讓我們看看isset這個語句在語法分析的過程中, 是如何被”抹掉”的.

1. 首先, 在詞法分析的時候, isset會被識別為T_ISSET標(biāo)識符.
2. 而在語法分析階段, isset($var)這個指令, 會被分析成一條Opcode:ZEND_ISSET_ISEMPTY_VARS.

你可以理解isset就想C語言里面的宏, 在編譯/執(zhí)行之前已經(jīng)被展開了.
因為這個, 所以在表現(xiàn)上, 會有如下的不同:
因為is_null是函數(shù), 所以它可以通過如下方式調(diào)用:
復(fù)制代碼 代碼如下:
<?php
$var = NULL;
$func = "is_null";
$func($var);
?>

而, isset因為是語句, 所以不能這樣調(diào)用.
因為is_null是函數(shù), 所以它可以接受函數(shù)返回值做為參數(shù), 而isset不行(當(dāng)然, 如果php想支持, 其實也是可以的, 只不過就要增加編譯階段的復(fù)雜度了):
復(fù)制代碼 代碼如下:
<?php
is_null(intval("0x45"));
//OK
isset(intval("0x45"));
//php Fatal error: Can't use function return value in write context
is_null(NULL);
//OK
isset(NULL);
//php Parse error: syntax error
?>

說了這么多isset的缺點了, 說點它的優(yōu)點吧:
因為isset是語句, 所以它快!
在一千萬次的簡單檢測語句循環(huán)中, 對比結(jié)果如下:
復(fù)制代碼 代碼如下:
<?php
$a="laruence":
isset($a); //用時: 1.15s
is_null($a); //用時: 3.89s
?>

因為isset叫做isset, 所以它在檢測未定義變量的時候, 不會產(chǎn)生NOTICE:
復(fù)制代碼 代碼如下:
<?php
isset($laruence);
//OK
is_null($laruence);
//php Notice: Undefined variable: laruence
?>

那么, 對于什么時候用isset什么時候用is_null, 我有什么建議呢?
誒, 我的建議是, 用函數(shù)做函數(shù)應(yīng)該做的事情~, 聽起來象廢話?
isset => is set? => 變量有沒有被賦值(聲明)
is_null => is null? => 變量為NULL么?
另外, 如果要用is_null, 我建議使用 “=== NULL” 來代替, 它不僅語義和is_null一致, 結(jié)果一致, 速度還和isset差不多:
在一千萬次的簡單檢測語句循環(huán)中, 對比結(jié)果如下:
復(fù)制代碼 代碼如下:
<?php
$a="laruence":
isset($a); //用時: 1.15s
is_null($a); //用時: 3.88s
$a===NULL; //用時: 1.22s
?>

php技術(shù)解析isset與is_null的區(qū)別,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 色综合久久综合欧美综合图片 | 大香网伊人久久综合网2020 | 四虎亚洲精品 | 另类av | 国产精品久久久久久一级毛片 | 亚洲精品高清国产一线久久97 | 一级做a爰片久久毛片美女 一级做a爰片久久毛片人呢 | 色网视频在线观看 | 色综合久久九月婷婷色综合 | 免费污视频在线观看 | 亚洲第一区香蕉_国产a | 国产精品拍自在线观看 | 精品视频在线观看一区二区三区 | a级精品国产片在线观看 | 日韩在线视屏 | 亚洲丶国产丶欧美一区二区三区 | 在线色资源 | 国产香蕉成人综合精品视频 | 亚洲精品国产专区91在线 | 亚洲一区二区福利视频 | 中文字幕在线观看国产 | 成人免费观看在线网址 | 好吊日在线观看 | 欧美激情视频在线观看一区二区三区 | 久久国产精品ww | 一区二区视频在线播放 | 44444色视频在线观看 | 91国内视频 | 免费伊人网 | 日韩精品首页 | 精品一区二区三区18 | 大伊人青草狠狠久久 | 一级寡妇乱色毛片全18 | 色老板最新地址 | 久久久久久国产精品mv | 国产精品福利午夜在线观看 | 久久亚洲精品中文字幕二区 | 国产网红在线 | 亚洲一区二区三区在线网站 | 日韩一区二区中文字幕 | 国产欧美另类久久久品 |