php 空函數,PHP 中函數 isset(), empty(), is_null() 的區別

d19871206f3a54797d7e9df70ba64ffd.png

PHP 中函數 isset(), empty(), is_null() 的區別,

使用 PHP 進行開發的時候,經常會用到 isset(), empty(), is_null() 這幾個函數對數據進行判斷,但是這是哪個函數的具體區別其實沒有很好的掌握。下面我們詳細講解一下:

NULL

什么是 NULL,當你開始寫 PHP 代碼的時候,直接用了未定義厄一個變量。

echo $var + 3; //使用這個變量出現:Notice: Undefined variable: var in

如果將其改寫成:

$var = NULL;

echo $var + 3; //這樣就不會有問題了

所以變量最好初始化,即使沒有,可以將NULL賦給變量,表示這個變量已經定義但沒有值,屬于 NULL 類型。

is_null()

當滿足下面三種情況時,is_null() 將返回 TRUE,其它的情況返回 FALSE

變量沒有被賦值

變量被賦值為NULL

變量未定義,相當于 unset()

具體一些例子:

$var = NULL;

var_dump(is_null($var)); // TRUE

$var1;

var_dump(is_null($var1)); // TRUE Notice: Undefined variable

$num = 520;

unset($num);

var_dump(is_null($num)); //TRUE Notice: Undefined variable

var_dump(is_null($some_undefined_var)); //TRUE Notice: Undefined variable

$var = 0; is_null($var); // FALSE

$var = FALSE; is_null($var); // FALSE

$var = ''; is_null($var); // FALSE

isset()

檢測已設定,并且不是NULL。如果沒有設置變量,變量未賦值,或變量被設為 NULL,isset() 函數就返回 NULL。

正好和 is_null() 函數相反,is_null() 為 TRUE 的情況在 isset() 中就為 FALSE。

如果傳遞多個參數,將取交集。即所有參數全部符合 isset() 時才返回 TRUE。

$var = NULL; isset($var); // FALSE 當一個變量被賦值為NULL時,就表示這個變量沒有值

$var = 0; isset($var); // TRUE

$var = FALSE; isset($var); // TRUE

$var = ''; isset($var); // TRUE

isset($some_undefined_var); // FALSE Undefined variable

可以看出 isset() 著重檢測一個 變量是否設置和這個變量是否有具體的值,當變量滿足這兩種情況時 isset() 返回TRUE

empty()

判讀變量是否為空。相當于 (!is_set($var) || !$var),來看一些具體例子:

$var = NULL; empty($var); // TRUE

$var = 0; empty($var); // TRUE

$var = FALSE; empty($var); // TRUE

$var = ''; empty($var); // TRUE

empty($some_undefined_var); // TRUE

empty() 為 TRUE 的情況,若變量不存在,或者變量存在且其值為””、0、”0″、NULL、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 TURE。

一般如 !empty() 的判斷,就是變量存在,且值不為 “”、0、”0″、NULL、FALSE、array() 以及只是單純定義一個變量 $var。

本站推薦使用的主機:,國外主機建議使用。

轉載請注明出處:https://www.it131.org/11389.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271027.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271027.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

UVa11021

11021 TribblesGRAVITATION, n.“The tendency of all bodies to approach one another with a strengthproportion to the quantity of matter they contain – the quantity ofmatter they contain being ascertained by the strength of their tendencyto approach one anot…

python合法變量類型_Python 變量類型

變量存儲在內存中的值。這就意味著在創建變量時會在內存中開辟一個空間。基于變量的數據類型,解釋器會分配指定內存,并決定什么數據可以被存儲在內存中。因此,變量可以指定不同的數據類型,這些變量可以存儲整數,小數或…

數據庫系統故障相關知識筆記

數據庫系統中可能發生的故障主要包括事務故障、系統故障、介質故障、計算機病毒等。下面給大家簡單整理一下相關的故障知識筆記。1、事務故障事務故障是因為程序執行錯誤而引起的非預期、異常終止的故障。主要有邏輯錯誤、系統錯誤導致事務的執行失敗。邏輯錯誤:比如…

dede php分頁代碼,DEDECMS系統分頁標簽自定義二次開發

以前有給大家寫過一篇自定義dedecms留言板的分頁,下面我再來給大家分享一篇自定義常見的分頁標簽例子,希望文章對大家會有所幫助.自定搜索結果頁面文章分頁,在/plus文件夾中新建一個search.php文件,代碼如下:require_once(dirname(__FILE__)."/../include/common.inc.php&…

windows下gvim中文亂碼解決方案

網羅了一些網上的解決windows下gvim中文亂碼的解決方案,都試了一遍,可惜都不能完全解決我的所有問題,最后我綜合一下網上的兩種方案,得到了最后完全解決我的中文亂碼問題的方案,配置很簡單,就是把下面的配置…

python主從_python—mariadb自動部署主從

import configparserimport osdef config_mariadb_yum():exists os.path.exists(/etc/yum.repos.d/mariadb.repo)if exists:print(mariadb.repo文件已經存在)yum_install_mariadb()else:config configparser.ConfigParser()config.read(/etc/yum.repos.d/mariadb.repo, encod…

數據庫系備份相關知識筆記

1、數據庫備份的知識介紹在互聯網時代,最珍貴的財產不是計算機應用軟件,更不是計算機硬件,而是企業在業務長期發展過程中積累下來的業務數據。建立網絡最根本的用途是更加方便的傳遞、使用數據,人為原因、硬盤損壞、計算機病毒、斷…

python數組合并、輸入三行數據,如何在python中合并兩個或三個3D數組?

Numpy的hstack、vstack或dstack(取決于要連接數組的軸)將連接多維數組。在請注意,對于MODIS氣溶膠數據,使用hstack連接陣列有時會拋出錯誤,因為有時陣列是203 x 135,有時是204 x 135,因此水平維度并不總是匹配的基于您…

操作系統:分享6 個“嚇人”的 Linux 命令

目錄 1、crypt 2、kill 3、shred 5、at midnight 6、daemons 1、crypt 好吧,我們一直都有crypt。顧名思義,crypt不是存放垃圾文件的地宮或墓坑,而是加密文件內容的命令。 如今,“crypt”通常作為一個腳本而實現:通過調…

谷歌網絡代理工具_谷歌更新了Dialogflow AI引擎,幫助客戶創建更好的虛擬代理...

日前,谷歌發布了對其Dialogflow的一些重要更新,對話流是其呼叫中心人工智能服務的主要技術,它可以自動與呼叫中心的客戶進行交互。據悉,Dialogflow是一個會話人工智能引擎,用于創建虛擬代理,可以理解和響應…

php use閉包參數,php 閉包use的使用

閉包可以從父作用域中繼承變量。 任何此類變量都應該用 use 語言結構傳遞進去。PHP的閉包即為匿名函數。示例如下。$message hello;// 繼承 $message$example function () use ($message) {var_dump($message);};echo $example(); //hello// Inherited variables value is fr…

數據庫恢復相關知識筆記

1、數據庫恢復的原理數據庫恢復的原理主要是在數據庫發生故障之后,建立冗余數據,在故障發生之后利用冗余數據來完成數據庫恢復。數據轉儲和建立日志文件是建立冗余數據常用的技術手段。一般情況下兩種技術手段會同時使用。2、故障恢復的兩個操作故障恢復…

C++ map注意事項

C map注意事項 1、在map中,由key查找value時,首先要判斷map中是否包含key。 2、如果不檢查,直接返回map[key],可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有…

oracle數據庫any,Oracle權限集合全集

alter any cluster 修改任意簇的權限alter any index 修改任意索引的權限alter any role 修改任意角色的權限alter any sequence 修改任意序列的權限alter any snapshot 修改任意快照的權限alter any table 修改任意表的權限alter any trigger 修改任意觸發器的權限alter clust…

equals方法中變量在前和在后的區別

如果是兩個都是變量,那就放哪都行沒啥區別 如果有一個是常量一個變量的情況下,因為equals()方法是在Object類里定義的,也就是說任何對象都可以調用equals()方法,但是對象在調用方法的時候,如果對象為null那系統運行就…

空間句法軟件_【特訓營報名】空間句法理論與實踐應用(第二期更新版)丨城市數據派...

最新線上特訓營 授課老師專業過硬負責空間句法官方中文網站建設作為主要譯者翻譯空間句法奠基作《空間的社會邏輯》此課程為空間句法初級課程的第二期更新版課程內容更豐富更完善教學視頻永久觀看報名時間及價格 課程原價1000元,提前報名享優惠!4月13-19…

數據庫安全性相關知識筆記?

1、數據庫的惡意訪問形式未經授權讀取數據、未經授權修改數據、未經授權破壞數據。2、數據庫安全性概念數據庫安全性(Data Base Security)主要是指盡可能保護數據庫不受惡意訪問。3、數據庫安全防護的層次數據庫系統層次(DataBase System&…

HDU4055 - number string(DP)

題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4055 思路&#xff1a;dp[i][j]表示處理前i個字符以j結尾可能的序列數。當a[i]I時&#xff0c;dp[i][j]sum(dp[i-1][k]),&#xff08;1<k<j-1&#xff09;&#xff0c; 可進一步化為dp[i][j-1]dp[i-1][j-…

什么是字面量

1:字面量 字面量就是比如說int a 1; 這個1就是字面量 &#xff0c;a是變量名 又比如String b "abc";這個abc就是字面量&#xff0c;b是變量名