[英]php array_key_exists, !empty and isset fails for no reason?
ubuntu 16.0.4 LTS上的php 7.0.8可能會給我一個提示,為什么當鍵明顯存在時,數組鍵檢查會失敗,程序執行只是停止,即使啟用了所有錯誤報告也沒有解釋。
數組元素中保存的數據類型是一個字符串,其中包含從fedora網站https://torrents.fedoraproject.org/下載的種子文件。
其他功能也會在這里失敗,例如數組鍵上的!empty
在這種情況下,鍵為0
if(array_key_exists($index, $this->_webpage)){
return $this->_webpage[$index];
}else{
/* throw notice */
trigger_error("Array index is out of range. Can not get webpage.", E_USER_NOTICE);
return FALSE;
}
注意:iv使用相同的功能來檢查網頁是否已下載,並且可以在同一系統上正常工作,即只是將torrent解析添加到我的應用程序中
摘要 array_key_exists肯定會告訴你,如果一個關鍵的陣列中的存在,而如果鍵/變量存在,如果變量是一個空字符串,假的是不為null, 空返真isset只會返回true,陣列(),NULL, “ 0?,0和一個未設置的變量
更多細節
從PHP手冊– isset():
isset —確定是否設置了變量並且不為NULL
換句話說,僅當變量不為null時,它才返回true。
從PHP手冊– empty():
empty —確定變量是否為空
換句話說,如果變量為空字符串,false,array(),NULL,“ 0”,0和未設置的變量,則它將返回true。
也是空的()如果變量不存在不產生警告。
從PHP手冊– array_key_exists():
檢查給定鍵或索引在數組中是否存在
因此,如果在數組中設置了給定鍵,則array_key_exists()返回TRUE。 鍵可以是數組索引的任何可能值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.