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ù)。我靠,本地明明是好的。看了下本地的PHP是5.5的,服務(wù)器是5.3的。難道這函數(shù)在2個(gè)版本之間就進(jìn)化了么?找遍了PHP官方的文檔沒(méi)有發(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)用于任何值,而不局限于變量。可以為常量、函數(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)文章
漂亮的thinkphp 跳轉(zhuǎn)頁(yè)封裝示例
今天小編就為大家分享一篇漂亮的thinkphp 跳轉(zhuǎn)頁(yè)封裝示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP實(shí)現(xiàn)簡(jiǎn)單漢字驗(yàn)證碼
大家知道簡(jiǎn)單數(shù)字或者字母驗(yàn)證碼很容易被破解,但是算式驗(yàn)證碼或者中文漢字驗(yàn)證碼不容易被破解,所以建議大家在使用驗(yàn)證碼的時(shí)候,盡量用算式驗(yàn)證碼或者中文漢字驗(yàn)證碼。2015-07-07PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng)
今天小編就為大家分享一篇關(guān)于PHP PDO數(shù)據(jù)庫(kù)操作預(yù)處理與注意事項(xiàng),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03php判斷輸入不超過(guò)mysql的varchar字段的長(zhǎng)度范圍
varchar類型字段,如果你設(shè)置長(zhǎng)度為10,那么不論漢字和英文都可以存10個(gè)。2011-06-06PHP 實(shí)現(xiàn)判斷用戶是否手機(jī)訪問(wèn)
這篇文章主要介紹了PHP 實(shí)現(xiàn)判斷用戶是否手機(jī)訪問(wèn)的方法,十分實(shí)用的功能,推薦給有需要的小伙伴。2015-01-01