爲什麼要使用if (isset($var)) {}
而不僅僅是if ($var) {}
?它似乎做同樣的事情,只是採取額外的處理。謝謝!是否有任何理由使用isset()?
2
A
回答
6
原因
的原因是,isset()
將返回布爾值,當您檢查變量的存在,並繼續不拋出一個警告。此外,還有一種可能性,即,一個變量可能具有零個值:
false
0
""
但他們已經設置。
例
$varb = false;
$vari = 0;
$vars = "";
isset($varb) // true
isset($vari) // true
isset($vars) // true
if ($varb) // false
if ($vari) // false
if ($vars) // false
+4
+1 PHP5 +認爲OP的語法是不好的形式。 – 2013-03-08 03:44:19
1
您使用isset()
檢查一個變量已經聲明。
另一種方法檢查$var
有什麼值。因此,如果$var
碰巧包含false
,那麼條件將是錯誤的,但您不會確定變量是否未設置,或者變量是否包含false
。
相關問題
- 1. 是否有任何理由使用System.Uri?
- 2. 是否有任何理由使用[:over @:?
- 3. 是否有任何理由Object.freeze函數?
- 4. 是否有任何理由使用SGML而不是XML?
- 5. C++:是否有任何理由使用uint64_t,而不是size_t
- 6. 是否有任何理由在C#中使用私有屬性?
- 7. 是否有任何理由在Swift中使用選擇器?
- 8. 是否有任何理由使用等待和異步馬上?
- 9. 是否有任何理由在'.class'上使用selector'* .class'?
- 10. 是否有任何理由對羣集使用鎖文件?
- 11. 是否有任何理由不使用INLINABLE pragma作爲函數?
- 12. 是否有任何理由,你爲什麼會使用document.writeln
- 13. 是否有任何理由使用threading.Lock over multiprocessing.Lock?
- 14. 是否有任何理由在微軟ISV中使用TFS 2010?
- 15. 是否有任何理由在兩個MemoryStream之間使用CopyToAsync
- 16. 是否有任何理由使用HTTP 410 GONE狀態碼?
- 17. 是否有任何理由使用self關鍵字?
- 18. 是否有任何理由通過PyMem_Malloc使用malloc?
- 19. 是否有任何理由在VBA中使用ENUM?
- 20. 是否有任何真正的理由在Uitextfield上使用UiSearchBar?
- 21. 是否有任何理由使用jpg文件擴展名?
- 22. 是否有任何理由使用RabbitMQ而非Kafka?
- 23. 是否有任何理由不使用Boost :: shared_ptrs?
- 24. Java - 是否有任何理由檢查單例是否爲空?
- 25. 當有一個通用的Dictionary類時,是否有任何理由使用Hashtables?
- 26. 是否有任何理由在Internet Expolorer中用JScript替換JavaScript?
- 27. 是否有任何理由來開發應用程序的根?
- 28. 是否有任何理由將引用留在AssemblyInfo.cs中的System.Runtime.CompilerServices?
- 29. 是否有任何理由使用CSS陰影而不是陰影?
- 30. 是否有任何理由在C++ 1z中使用std :: map :: emplace()而不是try_emplace()?
如果它是假的呢? – SLaks 2013-03-08 03:42:48
如果'$ var'是'false','0'或''''怎麼辦? – Blender 2013-03-08 03:42:53
[Weak typing in PHP:why is use isset?](http://stackoverflow.com/questions/413929/weak-typing-in-php-why-use-isset-at-all) – 2013-03-08 03:43:17