php基础学习(4)-类型比较

php 2019-11-18 1577 0
22:49:42

php基础学习(4)-类型比较

php类型比较

在业务需求中,我们往往有比较变量的需求,通常有两种方式:松散比较严格比较

松散比较:使用两个等号“==”比较,只比较值,不比较类型

严格比较:使用三个等号“===”比较,除了比较值,也比较类型

举例

  1. <?php
  2. if(42 == "42") {
  3.         echo '1、值相等(松散比较:值相等,但是类型不同,一个int一个string)';
  4. }
  5. if(42 === "42") {
  6.         echo '2、类型相等';
  7. else {
  8.         echo '3、不相等(严格比较:值相同,但是类型不同,所以不相等)';
  9. }
  10. ?>
输出结果
  1. 1、值相等(松散比较:值相等,但是类型不同,一个int一个string)
  2. 3、不相等(严格比较:值相同,但是类型不同,所以不相等)

php中比较0、false、null

实例

  1. <?php
  2. echo '0 == false: ';
  3. var_dump(0 == false);
  4. echo '0 === false: ';
  5. var_dump(0 === false);
  6. echo PHP_EOL;
  7. echo '0 == null: ';
  8. var_dump(0 == null);
  9. echo '0 === null: ';
  10. var_dump(0 === null);
  11. echo PHP_EOL;
  12. echo 'false == null: ';
  13. var_dump(false == null);
  14. echo 'false === null: ';
  15. var_dump(false === null);
  16. echo PHP_EOL;
  17. echo '"0" == false: ';
  18. var_dump("0" == false);
  19. echo '"0" === false: ';
  20. var_dump("0" === false);
  21. echo PHP_EOL;
  22. echo '"0" == null: ';
  23. var_dump("0" == null);
  24. echo '"0" === null: ';
  25. var_dump("0" === null);
  26. echo PHP_EOL;
  27. echo '"" == false: ';
  28. var_dump("" == false);
  29. echo '"" === false: ';
  30. var_dump("" === false);
  31. echo PHP_EOL;
  32. echo '"" == null: ';
  33. var_dump("" == null);
  34. echo '"" === null: ';
  35. var_dump("" === null);
  36. ?>
输出结果
  1. 0 == false: bool(true)
  2. 0 === false: bool(false)
  3. 0 == null: bool(true)
  4. 0 === null: bool(false)
  5. false == null: bool(true)
  6. false === null: bool(false)
  7. "0" == false: bool(true)
  8. "0" === false: bool(false)
  9. "0" == null: bool(false)
  10. "0" === null: bool(false)
  11. "" == false: bool(true)
  12. "" === false: bool(false)
  13. "" == null: bool(true)
  14. "" === null: bool(false)

通过以上实例,我们不难看出松散比较和严格比较的区别:

  1. 松散比较:只要值或者数据类型相同,那么就返回true
  2. 严格比较:必须值&数据类型都相同,才会返回true

 

发表评论