本文主要介紹了PHP isset()與empty()的使用差異。具有很好的參考價值,下面跟著小編一起來看下吧
在使用php 編寫頁面程式時,我經常使用變數處理函數判斷php 頁面尾部參數的某個變數值是否為空,開始的時候我習慣了使用empty() 函數,卻發現了一些問題,因此改用isset() 函數,問題不再。
顧名思義,empty() 判斷一個變數是否為“空”,isset() 判斷一個變數是否已經設定。正是這種所謂的“顧名思義”,令我開始時走了些彎路:當一個變數值等於0時,empty()也會成立(True),因而會發生 一些意外。原來,empty() 和isset() 雖然都是變數處理函數,它們都用來判斷變數是否已經配置,但它們有一定的差異:empty還會偵測變數是否為空、為零。當一個變數值為0,empty() 認為這個變數同等於空,即相當於沒有設定。
例如偵測$id 變量,當$id=0 時,用empty() 和isset() 來偵測變數$id 是否已經配置,兩都會傳回不同的值— — empty() 認為沒有配置,isset() 能夠取得$id 的值:
$id=0; empty($id)?print "It's empty .":print "It's $id ."; //结果:It's empty . print " "; !isset($id)?print "It's empty .":print "It's $id ."; //结果:It's 0 .
這意味著,我們在使用變數處理函數時,當變數可能出現0的值,使用empty() 要小心,這個時候用isset 取代它比較明智一些。
當一個php頁面的URL 尾參數出現id=0 時(例如:test.php?id=0),試比較:
if(empty($id)) $id=1; - 若 id=0 ,id 也会为1 if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
可分開執行以下程式碼偵測上述推斷:
if(empty($id)) $id=1; print $id; // 得到 1 if(!isset($id)) $id=1; print $id; //得到 0
#要說它們的聯繫,其共同點就是empty()和isset()都是變數處理函數,作用是判斷變數是否已經配置,正是由於它們在處理變數過程中有很大的相似性,才導致對它們的關係認識不足。單從 empty()和isset()這兩個函數本身來考慮的話會把人弄得更糊塗,換一個角度來它。 empty()和isset()的處理對象無外乎未定義變量,0,空字串。
如果變數為0,則empty()會回傳TRUE,isset()會回傳TRUE;
如果變數為空字串,則empty()會傳回TRUE,isset()會傳回TRUE;
如果變數未定義,則empty()會傳回TRUE,isset()會回傳FLASE;
##手冊中對empty()的解釋如下:描述bool empty( mixed var )如果var 是非空或非零的值,則empty() 傳回FALSE。換句話說,""、0、"0"、NULL、FALSE、array()、var $var; 以及沒有任何屬性的物件都會被視為空的,如果 var 為空,則傳回 TRUE。手冊中對isset()的解釋如下:
#isset()偵測變數是否設定描述bool isset ( mixed var [, mixed var [, ...]] )如果var 存在則回傳TRUE,否則回傳FALSE。 如果已經使用 unset() 釋放了一個變數之後,它將不再是 isset()。若使用 isset() 測試一個被設定為 NULL的變量,將會傳回 FALSE。同時要注意的是一個 NULL 位元組("\0")並不等同於 PHP 的 NULL 常數。警告: isset() 只能用於變量,因為傳遞任何其它參數都會造成解析錯誤。若想檢測常數是否已設置,可使用defined()函數。
當要判斷變數是否已經宣告的時候可以使用isset 函數
當要判斷一個變數是否已經賦予資料且不為空可以用empty 函數
#當要判斷一個變數存在且不為空先isset 函數再用empty 函數
以上就是本文的全部內容,希望對大家的學習有幫助。PHP中empty,isset,is_null用法與差異詳解
#PHP isset()與empty()的使用差異
php中isset和empty的區別詳解
以上是PHP isset()與empty()的差異詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。