Blogger Information
Blog 24
fans 0
comment 12
visits 15586
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php运算符,流程控制笔记举例和感想
移动用户-5435854
Original
581 people have browsed it

运算符

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;

感想:

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

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:语法上出错, 是最可惜的, 如果想减少或杜绝这种错误, 只有通过大量的练习
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
1 comments
移动用户-5435854 2020-04-19 14:36:44
周末时间开始复习了,多谢都看
1 floor
Author's latest blog post