PHP empty誤區(qū):
????????之前在看empty使用方法時(shí),看到對empty()方法的用法解釋為:若變量存在且其值為""、0、"0"、NULL、、FALSE、?array()、$var;?以及沒有任何屬性的對象,則返回?TURE。
? ? ? ? 然而,經(jīng)過試驗(yàn)我發(fā)現(xiàn):
? ? ? ? 當(dāng)empty(空對象)時(shí),返回的并不是true,而是false
????????example 0:
? ??????$obj = null;
? ??????$obj = null;
????????if(empty( ((object)$obj) ) ){
????????????echo 1;
????????}else{echo 2;}//此處將會輸出2
????? ? example 1:
? ??????class foo{
????????}
????????$obj = new foo();
????????if(empty($obj)){
????????????echo 1;
????????}else{echo 2;}//此處也輸出2
? ? ? ? 其實(shí)翻看PHP官方手冊對empty()的解釋為:
????????以下的東西被認(rèn)為是空的:
? ??????""?(空字符串)
? ??????0?(作為整數(shù)的0)
? ??????0.0?(作為浮點(diǎn)數(shù)的0)
? ??????"0"?(作為字符串的0)
? ??????NULL
? ??????FALSE
? ??????array()?(一個空數(shù)組)
? ??????$var;?(一個聲明了,但是沒有值的變量)
? ? ? ? 地址:http://php.net/manual/zh/function.empty.php
? ? ? ? 并沒有對對象的解釋。