PHP5.5和之前的版本empty函數(shù)的不同之處
作為我最喜歡使用的函數(shù)之一,今天也終于發(fā)現(xiàn)這個(gè)函數(shù)的惡魔之處。洋洋灑灑寫了以下代碼,本地測(cè)試一切ok,到服務(wù)器上就SB了。
if(strlen($passwd) < 6 || empty($preg_replace("/\d/", "", $passwd))) {
//do something
}
大致的意思就是,密碼必須大于6位切不能只由數(shù)字組成。找遍服務(wù)器日志,發(fā)現(xiàn)如下錯(cuò)誤:
PHP Fatal error: Can't use function return value in write context in /xxx/xxx/xx.php on line xxx
google了一下,大概是說(shuō),empty的參數(shù)不能為函數(shù)。我靠,本地明明是好的??戳讼卤镜氐腜HP是5.5的,服務(wù)器是5.3的。難道這函數(shù)在2個(gè)版本之間就進(jìn)化了么?找遍了PHP官方的文檔沒有發(fā)現(xiàn)任何端倪,然后google狂搜,不小心點(diǎn)到了PHP英文文檔界面,在empty函數(shù)的介紹下面,發(fā)現(xiàn)了一行小字:
Note:
Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words, the following will not work: empty(trim($name)). Instead, use trim($name) == false.
惡魔啊,不帶這么坑中文用戶的??偨Y(jié)下empty函數(shù)的使用場(chǎng)景:
1.PHP 5.5之前的版本,這個(gè)函數(shù)是用來(lái)檢查變量的賦值是否為0, false, 空字符串, null。任何非變量形式的參數(shù)都是導(dǎo)致這個(gè)函數(shù)報(bào)錯(cuò)。
2.PHP 5.5這個(gè)函數(shù)可以應(yīng)用于任何值,而不局限于變量??梢詾槌A俊⒑瘮?shù)返回值等等。
- 如何把php5.3版本升級(jí)到php5.4或者php5.5
- PHP5.5在windows安裝使用memcached服務(wù)端的方法
- php5.5中類級(jí)別的常量使用介紹
- php5.5新數(shù)組函數(shù)array_column使用
- php可應(yīng)用于面包屑導(dǎo)航的迭代尋找家譜樹實(shí)現(xiàn)方法
- php使用遞歸與迭代實(shí)現(xiàn)快速排序示例
- PHP迭代器的內(nèi)部執(zhí)行過(guò)程詳解
- PHP迭代器實(shí)現(xiàn)斐波納契數(shù)列的函數(shù)
- PHP設(shè)計(jì)模式之迭代器模式的深入解析
- PHP5.5迭代生成器用法實(shí)例詳解
相關(guān)文章
PHP實(shí)現(xiàn)關(guān)鍵字搜索后描紅功能示例
這篇文章主要介紹了PHP實(shí)現(xiàn)關(guān)鍵字搜索后描紅功能,結(jié)合實(shí)例形式分析了php數(shù)據(jù)庫(kù)連接、查詢、字符串轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
phpQuery采集網(wǎng)頁(yè)實(shí)現(xiàn)代碼實(shí)例
這篇文章主要介紹了phpQuery采集網(wǎng)頁(yè)實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
PHP實(shí)現(xiàn)無(wú)限極分類的兩種方式示例【遞歸和引用方式】
這篇文章主要介紹了PHP實(shí)現(xiàn)無(wú)限極分類的兩種方式,結(jié)合實(shí)例形式分析了php基于遞歸和引用方式進(jìn)行數(shù)組遍歷的相關(guān)操作技巧,需要的朋友可以參考下2019-03-03
php+mysql實(shí)現(xiàn)用戶注冊(cè)登陸的方法
這篇文章主要介紹了php+mysql實(shí)現(xiàn)用戶注冊(cè)登陸的方法,可實(shí)現(xiàn)簡(jiǎn)單的用戶注冊(cè)登錄的功能,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01
PHP基于session.upload_progress 實(shí)現(xiàn)文件上傳進(jìn)度顯示功能詳解
這篇文章主要介紹了PHP基于session.upload_progress 實(shí)現(xiàn)文件上傳進(jìn)度顯示功能,結(jié)合實(shí)例形式分析了php5.4版本session.upload_progress特性實(shí)現(xiàn)文件上傳進(jìn)度顯示的相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
本文給大家分享的是如何讓thinkPHP在低版本的Nginx下支持PATHINFO去掉index.php路徑的方法,十分的簡(jiǎn)單實(shí)用,思路也很巧妙,有需要的小伙伴可以參考下2016-05-05

