博客列表 >php运算符,流程控制笔记举例和感想

php运算符,流程控制笔记举例和感想

移动用户-5435854
移动用户-5435854原创
2020年04月18日 15:20:48582浏览

运算符

1. 算术运算符

序号 运算符 示例 描述
1 + $a+$b $a与$b 的和
2 - $a-$b $a与$b 的差
3 * $a*$b $a与$b 的积
4 / $a/$b $a与$b 的商
5 % $a%$b $a与$b 的余(模)
6 ++ $a++/++$a 先用再加/先加再用
7 -- $a--/--$a 先用再减/先减再用
8 ** 2**4 幂运算:2 的 4 次方

2. 字符串运算符

运算符 示例 描述
. $str1 . $str2 连接运算,返回连接之后的字符串

3. 赋值运算符

序号 运算符 示例 描述
1 = $a = 10 将表达式的值赋给变量
2 += $a += 10 $a = $a + 10;
3 -= $a -= 10 $a = $a - 10;
4 *= $a *= 10 $a = $a * 10;
5 /= $a /= 10 $a = $a / 10;
6 %= $a %= 10 $a = $a % 10;
7 .= $a .= 'a' $a = $a . 'a';

上机演示:

  1. $s=100;
  2. // s++先不加,++s先加,s--先不减,--s先减
  3. // var_dump($s++);
  4. // var_dump($s);
  5. // var_dump ('<hr>');
  6. // var_dump($s--);
  7. // var_dump($s);
  8. // var_dump (++$s);
  9. // var_dump($s);
  10. // var_dump(--$s);
  11. // var_dump($s);

4. 比较运算符

序号 运算符 示例 描述
1 > $a > $b 大于
2 >= $a >= $b 大于或等于
3 < $a < $b 小于
4 <= $a <= $b 小于或等于
5 == $a == $b 等于 (值相等即可)
6 === $a == $b 全等于(二边值与类型全等)
7 != $a != $b 不相等
8 !== $a !== $b 不全等
9 <=> $a <=> $b 太空船php7+ 1,-1 0

上机演练轨迹(一个一个演练的,演练完一个注释一个):

  1. // 字符串连接
  2. // echo('<hr>');
  3. // echo('php'.'中文网'.'朱老师'.'<br>');
  4. // echo('php'. 28 .'朱老师'.'<br>');
  5. // $s = 100 ;
  6. // $s+=100;
  7. // echo $s;
  8. // $s-=50;
  9. // echo $s;
  10. // $s*=50;
  11. // echo $s;
  12. // $s/=10;
  13. // echo $s;
  14. $s%=9;
  15. echo $s;
  16. $s.=50;
  17. // echo $s;
  18. // echo('<br>');
  19. //全等是属性和值都相等,等于是两个数值相等
  20. // var_dump(100==='100');
  21. // var_dump(100=='100');

太空船上机操作:

  1. // 太空船,这个返回是0
  2. var_dump(50<=>50);

太空船运算符返回三种结果:

序号 运算 结果
1 $a > $b 返回>0的整数
2 $a < $b 返回<0的整数
3 $a = $b 返回=0的整数

5. 逻辑运算符

序号 运算符 示例 描述
1 && $a && $b 逻辑与
2 ! !$a 逻辑非(取反)
3 xor $a xor $b 逻辑异或

| 4 | || | $a || $b | 逻辑或 |


上机演示:

  1. // ||相当于加法(或)
  2. var_dump(3<4||1>3);
  3. // &&相当于乘法(与)
  4. var_dump(3<4&&1>3);

6. 三元运算符

序号 运算符 示例 描述 场景
1 ?: $a ?: $b 仅判断表达式true/false 简化双分支
2 ?? $a ?? $b 判断变量存在且不为 null 设置默认值

上机演练:

  1. // $username='abc';不注释显示abc,注释了显示123
  2. $username=$username??'123';
  3. echo $username;

7. 错误屏蔽符

运算符 示例 描述 场景
@ @(10/0) 屏蔽所有运行错误 线上生产环境

语法错误不能被屏蔽,主要是为了防止信息泄露给客户。在浏览器被打印。

上机演示:

  1. echo @$name;

流程控制

1. 分支结构

序号 类型 语法 模板语法
1 单分支 if(){...} if(): ... endif;
2 双分支 if(){...} else {...} if(): ... else: ... endif;
3 多分支 if(){...} elseif {...} else {...} if(): ... elseif: ... else: ... endif;
4 switch switch() {case: ... break...} switch(): ...endswitch;

单分支上机演练:古驰打折季

  1. <?php
  2. //购买古驰产品高于一万一千元打七折,我买了一万元,不打折。
  3. $gucci=10000;
  4. $buynow=$gucci;
  5. if($gucci>11000)$buynow=$gucci*0.7;
  6. echo '金额:'.$buynow;

单分支模板语法

  1. $gucci=10000;
  2. $buynow=$gucci;
  3. if($gucci>11000):
  4. $buynow=$gucci*0.7;
  5. endif;
  6. echo '金额:'.$buynow;

双分支语法上机

  1. $gucci=10000;
  2. $buynow=$gucci;
  3. if($gucci>11000){$buynow=$gucci*0.7;}
  4. else{
  5. $buynow=$gucci;
  6. }
  7. echo '金额:'.$buynow;

双分支模板写法:

  1. $gucci=10000;
  2. $buynow=$gucci;
  3. if($gucci>11000):$buynow=$gucci*0.7;
  4. else:
  5. $buynow=$gucci;
  6. endif;
  7. echo '金额:'.$buynow;

简化多分支上机

  1. $gucci=30000;
  2. switch(true)
  3. {
  4. case $gucci>10000&& $gucci<20000:
  5. $buynow=$gucci*0.7;
  6. break;
  7. case $gucci>=20000:
  8. $buynow=$gucci*0.5;
  9. break;
  10. default:
  11. $buynow=$gucci;
  12. }
  13. echo $buynow;


多分支简写模板语法

  1. $gucci=30000;
  2. switch(true):
  3. case $gucci>10000&& $gucci<20000:
  4. $buynow=$gucci*0.7;
  5. break;
  6. case $gucci>=20000:
  7. $buynow=$gucci*0.5;
  8. break;
  9. default:
  10. $buynow=$gucci;
  11. endswitch;
  12. echo $buynow;

多分支上机演练

  1. //得到结果是15000
  2. $gucci=30000;
  3. if($gucci>10000&& $gucci<20000){
  4. $buynow=$gucci*0.7;
  5. }
  6. elseif($gucci>=20000){
  7. $buynow=$gucci*0.5;
  8. }
  9. else{
  10. $buynow=$gucci;
  11. }
  12. echo $buynow;

多分支模板写法

  1. if($gucci>10000&& $gucci<20000):
  2. $buynow=$gucci*0.7;
  3. elseif($gucci>=20000):
  4. $buynow=$gucci*0.5;
  5. else: $buynow=$gucci;
  6. endif;
  7. echo $buynow;

单值判断上机演练:

  1. $gucci=30000;
  2. $sales=0.6;
  3. switch($sales) :
  4. case 0.5:
  5. $buynow=$gucci*0.5;
  6. break;
  7. case 0.8:
  8. $buynow=$gucci*0.8;
  9. break;
  10. default:
  11. die('对不去,折扣不支持');
  12. endswitch;
  13. echo $buynow;

2. 循环结构

序号 类型 语法 模板语法
1 入口判断型 while(){...} while(): ... endwhile;
2 出口判断型 do {...} while(); do : ... while();
3 计数型 for(){...} for () : ... endfor;

循环控制关键字:

序号 关键字 描述
1 continue 终止本次循环,提前进入下一轮
2 break 跳出本层循环

入口判断型上机演练:

  1. <?php
  2. $car = ['宝马','奔驰','沃尔沃','奥迪'];
  3. while($cars=current($car)){
  4. echo $cars.'<br>';
  5. next($car) ;
  6. }

入口判断型循环模板写法:

  1. <?php
  2. $car = ['宝马','奔驰','沃尔沃','奥迪'];
  3. while($cars=current($car)):
  4. echo $cars.'<br>';
  5. next($car) ;
  6. endwhile;

出口判断型循环上机演示:

  1. $car = ['宝马','奔驰','沃尔沃','奥迪'];
  2. do {
  3. $cars=current($car);
  4. echo $cars. '<br>';
  5. next($car);
  6. } while($cars=current($car));

计数型循环上机演练

  1. $car = ['宝马','奔驰','沃尔沃','奥迪'];
  2. echo '数组中有多少个'. count($car);
  3. echo '<br>';
  4. for ( $i = 0 ;$i < count($car); $i++) :
  5. echo $car[$i].'<br>';
  6. endfor;


continue(继续的意思)用法上机测试:

  1. $car = ['宝马','奔驰',false,null,'沃尔沃','奥迪'];
  2. // 会执行'宝马','奔驰','沃尔沃','奥迪',跳过false和null
  3. // echo '<br>';
  4. for ( $i = 0 ;$i < count($car); $i++) :
  5. if(!$car[$i])continue;
  6. echo $car[$i].'<br>';
  7. endfor;

break(打断)用法上机操练

  1. $car = ['宝马','奔驰',false,null,'沃尔沃','奥迪'];
  2. // 只执行宝马,奔驰,就打断了。
  3. // echo '<br>';
  4. for ( $i = 0 ;$i < count($car); $i++) :
  5. if(!$car[$i])break;
  6. echo $car[$i].'<br>';
  7. endfor;

感想:

逻辑都懂,就是总出错,有的地方应该是写成了有的地方应该写;又忘了写,有的地方写了`;``又因为是全角导致错误不知道在哪里,进度贼慢。崩溃呀。下一步如果再灵活掌握估计我就完蛋了,这个东西得熟能生巧,只有特别熟了,成为一种习惯性思维(不用过脑子了,就和开车一样)操作了估计才能游刃有余的做项目,现阶段就和刚开始学车一样,得想着离合和油门,方向盘配合啥的,等多练多写,成为自己的东西后,才能草木皆可为剑。加油,享受这种痛苦吧。任何技能的习得都有这么个过程。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议
移动用户-54358542020-04-19 14:36:441楼
周末时间开始复习了,多谢都看