欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

深入理解php中0,null,empty,空,false,字符串间的关系

程序员文章站 2022-06-02 16:48:38
...
  1. //判断 0 和 '' 以及 empty null false的关系 start//

  2. if('safdasefasefasf'==0){

  3. echo "该字符串转换为数字 等于 0
    ";
  4. }//output:该字符串转换为数字 等于零。
  5. 这是关键的一个例子

  6. 手册上有解释:该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。

  7. 也就是说 '3asfdf'==3 ; 'adsfasdf'==0 相当要注意

  8. $a=0;

  9. if($a==''){
  10. echo "0 等于 ''
    ";
  11. } //output:0 等于''
  12. if(trim($a)==''){
  13. echo "trim(0)等于''
    ";
  14. } //no output
  15. if($a===''){

  16. echo "0===''
    ";
  17. } //no output
  18. if(empty($a)){
  19. echo "'' is empty
    ";
  20. } //output:'' is empty
  21. if(is_null($a)){
  22. echo "0 is null
    ";
  23. } //no output
  24. if(is_numeric($a)){
  25. echo "0 is numeric
    ";
  26. } //output:0 is numeric
  27. if(is_string($a)){
  28. echo "0 is string
    ";
  29. } //no output
  30. if(strval($a)==''){
  31. echo "转换成字符串的0 is ''
    ";
  32. } //no output
  33. // 判断 0 和 '' 以及 empty null false的关系 end //
  34. // 判断 '' 和 0 以及 empty null false的关系 start //

  35. $b = '';

  36. if($b==0){
  37. echo "'' 等于 0
    ";
  38. } //output:'' 等于 0
  39. if(!''){
  40. echo "'' 就是false
    ";
  41. } //output:'' 就是false
  42. if(!0){
  43. echo "0 就是false
    ";
  44. } //output:0 就是false bbs.it-home.org
  45. // 判断 '' 和 0 以及 empty null false的关系 end //
  46. echo "在判断空('')的时候一定要小心,0 也相当于'' ,0 和 '' 都相当于空字符和false,判断为空最好用===";

  47. ?>
复制代码

输出结果: 0 等于 ” ” is empty 0 is numeric ” 等于 0 ” 就是false 0 就是false 在判断空(”)的时候一定要小心,0 也相当于” ,0 和 ” 都相当于空字符和false,判断为空最好用=== 只能这样解释:0 也相当于 ” ,0 和 ” 都相当于空字符和false。 在判断空(”)的时候一定要小心,0 也相当于 ” ,0 和 ” 都相当于空字符和false,判断为空最好用===;

echo 0 == null; echo '**
' ; //true echo 0 === null; echo '**
' ; //false echo (string)0 != null; echo '**
' ; //true echo 0 != null; echo '**
' ; //false echo 0 !== null; echo '**
' ; //true