博客列表 >php学习第三章 预算符与流程控制 循环

php学习第三章 预算符与流程控制 循环

王小飞
王小飞原创
2020年04月19日 00:54:14649浏览
  1. //运算符
  2. //取模/取余数运算符
  3. var_dump(15%6);
  4. echo '<hr>';
  5. // 递增递减 ++,--,只能用在变量上 var_dump(10++);是错误的
  6. $n = 10;
  7. // ++在变量后面, 先引用变量的值, 再将变量执行加1的运算
  8. var_dump($n++);
  9. var_dump($n);
  10. echo '<hr>';
  11. //.字符转链接
  12. echo 'a' . 'b' . '<br>';
  13. //不是字符串会自动转换
  14. echo 'abc' . 28 . '<br>';
  15. echo '<hr>';
  16. //赋值
  17. // $n = $n + 10;此用法是老用法 下方是运算符用法
  18. $n += 10;
  19. var_dump($n);
  20. echo '<hr>';
  21. //.=字符串拼接 通过下面代码学习html在php中写法
  22. $user = ['110', '朱老师', 'PHP'];
  23. $table .= '<table border="1">';
  24. $table .= '<tr>';
  25. $table .='<td>'.$user[0] . '</td>';
  26. $table .= '<td>'.$user[1] . '</td>';
  27. $table .= '<td>'.$user[2] . '</td>';
  28. $table .= '</tr>';
  29. $table .= '</table>';
  30. echo $table;
  31. echo '<hr>';
  32. //比较运算符,返回布尔值
  33. var_dump(10 > 20);
  34. // ==判断是否相等 返回10和字符串10相等 ===判断是否全等 返回不相等 ''这个里面的内容时字符串
  35. // ==只判断值是否相等, 不判断类型 会发生自动类型转换 建议使用全等===
  36. var_dump(10 == '10');
  37. var_dump(10 === '10');
  38. echo '<hr>';
  39. // 太空船 <=> 只返回三种返回值 -1 0 和 1 小于返回-1 等于返回0 大于返回1
  40. var_dump(10 <=> 20);
  41. var_dump(10 <=> 5);
  42. var_dump(10 <=> 10);
  43. echo '<hr>';
  44. //逻辑运算符 &两边都是运算符 &理解为乘法 ||理解为加法
  45. var_dump((3<4) && 5>8);
  46. var_dump(true && false);
  47. var_dump(true || false);
  48. echo '<hr>';
  49. // if是如果 else是否则 &&理解为是 if后面@$name是判断是否存在$name 存在后再判断是否全等 ===使用全等 如果使用=那么在$name内容不是admin的时候也会验证通过
  50. $name='admin';
  51. if (@$name && $name==='admin') {
  52. echo '欢迎您';
  53. } else {
  54. echo '未登录';
  55. }
  56. echo '<hr>';
  57. // 三元运算符 ? : 简化双分支if
  58. $jiage ='1000';
  59. if ($jiage < 500) {
  60. echo '太贵了';
  61. } else {
  62. echo '太便宜了';
  63. }
  64. //上面的代码可以简化 下面是简化的 这种简化的写法不方便加更多的属性
  65. if ($jiage < 500) echo '太贵了'; else echo '太便宜了';
  66. // 条件 ? true : false 下面是三元符写法
  67. echo $jiage > 1000 ? '太贵了' : '真便宜';
  68. echo '<hr>';
  69. // ?? null合并运算符 isset是如果
  70. //设置变量默认值
  71. $password = '123abc';
  72. //这是原写法 isset是如果password则输入它 ?是如果没有passwrd 则输入root
  73. $password = isset($password) ? $password : 'root';
  74. //下面是三元符写法
  75. $password = $password ?? 'root';
  76. echo $password;
  77. echo '<hr>';
  78. //在所有的错误面前加@ 可以屏蔽错误 语法错误不能屏蔽 程序上线的时候应屏蔽错误 否则会泄露数据库密码等信息
  79. @include 'hello.php';
  80. //流程控制
  81. # 单分支
  82. // 购买金额
  83. $amount = 5500;
  84. // 实际支付
  85. $payment = $amount;
  86. // 下方代码表示如果价格大于5000就打9这 这种大括号在html混编的时候不方便 下方介绍如果去掉大括号
  87. if ($amount > 5000) {
  88. $payment = $amount * 0.9;
  89. }
  90. // 有一种替代语法 : 模板语法, 用在与html代码混编的时候
  91. // 模板语法的目标是: 干掉大括号 大括号开始改成: 大括号介绍改成endif;
  92. if ($amount > 5000) :
  93. $payment = $amount * 0.1;
  94. endif;
  95. echo '实际支付: ' . $payment . '<br>';
  96. echo '<hr>';
  97. // 双分支模板语法 如果支付价格低于5000 就不打折 第二分支输出原价
  98. $amount = 3500;
  99. $payment = $amount;
  100. if ($amount > 5000) :
  101. $payment = $amount * 0.1;
  102. else:
  103. $payment = $amount;
  104. endif;
  105. echo '实际支付: ' . $payment . '<br>';
  106. echo '<hr>';
  107. // 3. 多分支 如果价格大于5000 小于 10000 那么打9折
  108. // 第二分支表示 如果价格大于等于10000 并且小于20000 打7这
  109. // 第三分支表示 如果价格大于20000 打五折
  110. // 第四行表示 如果小于5000不打折
  111. $amount = 15500;
  112. if ($amount > 5000 && $amount < 10000) :
  113. $payment = $amount * 0.9;
  114. elseif ($amount >= 10000 && $amount < 20000) :
  115. $payment = $amount * 0.7;
  116. elseif ($amount >= 20000) :
  117. $payment = $amount * 0.5;
  118. else :
  119. $payment = $amount;
  120. endif;
  121. echo '实际支付: ' . $payment . '<br>';
  122. echo '<hr>';
  123. // 4. switch: 简化多分支
  124. $amount = 5300;
  125. // 模板语法
  126. switch (true) :
  127. case $amount > 5000 && $amount < 10000:
  128. $payment = $amount * 0.9;
  129. // break: 跳出当前分支 不写的话不管多少钱都是打最高折扣
  130. break;
  131. case $amount >= 10000 && $amount < 20000:
  132. $payment = $amount * 0.7;
  133. break;
  134. case $amount >= 20000:
  135. $payment = $amount * 0.5;
  136. break;
  137. default:
  138. $payment = $amount;
  139. endswitch;
  140. echo '实际支付: ' . $payment . '<br>';
  141. echo '<hr>';
  142. // switch 更常用的场景是单值判断 显示出目前的折扣率
  143. $discount = 0.8;
  144. $amount = 10000;
  145. switch ($discount):
  146. case 0.9:
  147. $payment = $amount * 0.9;
  148. break;
  149. case 0.8:
  150. $payment = $amount * 0.8;
  151. break;
  152. default:
  153. die('不支持的折扣率');
  154. endswitch;
  155. echo '实际支付: ' . $payment . ', 折扣率: '. $discount;
  156. echo '<hr>';
  157. //循环
  158. $cities = ['武汉', '合肥', '南京', '杭州', '上海'];
  159. //不循环写法
  160. echo current($cities);
  161. next($cities);
  162. echo current($cities);
  163. next($cities);
  164. echo current($cities);
  165. echo '<hr>';
  166. //循环写法 1. 入口判断型
  167. // while是循环 current是获取当前值 next是移到下一个值
  168. while ($city = current($cities)) :
  169. echo $city . '<br>';
  170. // 更新循环条件, 没有这个语句, 会进入死循环 试了下浏览器差点卡死
  171. next($cities);
  172. endwhile;
  173. echo '<hr>';
  174. // 2. 出口判断型 do为开头 reset重置的意思
  175. reset($cities);
  176. do {
  177. $city = current($cities);
  178. echo $city . '<br>';
  179. // 更新循环条件, 没有这个语句, 会进入死循环
  180. next($cities);
  181. } while ($city = current($cities));
  182. // 无论条件是否为真,至少会执行一次
  183. // 没有对应的模板语法
  184. echo '<hr>';
  185. // 3. 计数型 count输入有几个数据
  186. echo '数组中有 : ' . count($cities);
  187. echo '<hr>';
  188. // $i = 0;循环变量初始化
  189. // $i < count($cities): 循环条件
  190. // $i++: 更新循环条件
  191. for ($i = 0; $i < count($cities); $i++) :
  192. echo $cities[$i] . '<br>';
  193. endfor;
  194. echo '<hr>';
  195. reset($cities);
  196. // continue: 终止当前循环,提前进入下一轮
  197. $cities = ['武汉', '合肥', false, '南京', null, '杭州', '上海'];
  198. // while ($city = current($cities)) :
  199. // echo $city . '<br>';
  200. // next($cities);
  201. // endwhile;
  202. for ($i = 0; $i < count($cities); $i++) :
  203. // 跳过空数据
  204. if (!$cities[$i]) continue;
  205. echo $cities[$i] . '<br>';
  206. // break; 跳出本层
  207. if ($cities[$i] === '杭州') break;
  208. endfor;
个人总结:通过录播复习加上自己执行老师讲的每一段代码,并在每个不懂的语句上注释含义,提高了学习进度。以后坚持看录播,运行老师讲的每一段代码并在不懂的代码注释含义。
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议