首页 > Web开发 > 详细

PHP中常见的坑

时间:2021-01-26 22:26:29      阅读:24      评论:0      收藏:0      [点我收藏+]

PHP开发中常见的坑

1.  switch/case

使用 switch 语句可以避免冗长的 if..elseif..else 代码块。但是一不小心,就会掉坑里。

1)当case为一个范围时
使用 0 < $num < 50,这种方式是不可以的,所以要用 0 < $num && $num < 50的方式,拆开写才可以

 1 <?php
 2 $a = 89;
 3 switch ($a) {
 4     case ($a < 60):
 5         echo ‘不及格‘;
 6         break;
 7     case ($a < 80):
 8         echo ‘中等‘;
 9         break;
10     case ($a < 90):
11         echo ‘良‘;
12         break;
13     default:
14         echo ‘优秀‘;
15         break;
16 }
17 
18 // 输出结果
19 // 良

2)当switch表达式中的值为0

 1 <?php
 2 $a = 0;
 3 switch ($a) {
 4     case ($a < 60):
 5         echo ‘不及格‘;
 6         break;
 7     case ($a < 80):
 8         echo ‘中等‘;
 9         break;
10     case ($a < 90):
11         echo ‘良‘;
12         break;
13     default:
14         echo ‘优秀‘;
15         break;
16 }
17 // 输出结果
18 // 优秀

这个地方,如果按照if...else的思维,满足第一个case语句,然后直接输出:不及格。但是实际情况输出的是:优秀

分析:switch/case跟if...else条件语句的区别是,switch表达式的值是与case语句中的值作匹配的,并不是像if条件中的只要是true就执行

php里面的switch会转换case类型,使用的时候一定要注意。

注意:

   1) switch/case 作的是松散比较。使用“==”进行比较的时候,尤其是string和int值比较时,会将字符串强转为int类型

   2) 在使用switch的时候,应该保证比较值和每个case的类型一致,否则就可能出现不可预计的错误

2.  in_array

 

3.  一个关于if else容易迷惑的问题

PHP中常见的坑

原文:https://www.cnblogs.com/hld123/p/14332029.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!