博客列表 >php的数据类型与流程控制

php的数据类型与流程控制

xueblog9的进阶之旅
xueblog9的进阶之旅原创
2022年08月10日 19:30:48485浏览

变量命名

  1. 默认:值传递
    1.1 变量名 = 值
    1.2 变量名2 = 变量名1—更新
  2. 引用传递
    2.1 变量名2 =&变量名1,变量名2更新时候,同时映射到变量名1,”&”取地址符

数据类型

  1. 基本类型:不可再分
    1.1 int(整数),float(浮点数),string(字符串),boolean(布尔值)
  2. 复合类型
    2.1 数组:[]
    2.2 对象:是个方法,格式:变量名=class
  3. null:赋值null,没赋值,被销毁unset()
  4. 资源类型:打开文件,对文件进行操作
  5. 回调类型:函数
    5.1 call_user_func(函数,参数列表),除了数值,其他均需要用引号包裹,包括函数
    5.2 call_user_func_array(函数,数组/名),支持数组传参
    5.3 call_user_func_array([对象实例名,函数名],数组/名),函数可来自对象方法
    5.4 call_user_func_array([类名,函数名],数组/名),函数可来自对象方法

流程控制

  1. 单分支-if(条件){动作}
  2. 双分支(三元运算符)if(条件){动作1;}else{动作2;},三元格式:条件?true:false
  3. 多分支(语法switch):if,elseif,多层嵌套,else默认值;
  4. &&:并列条件,||:或者条件

循环

  1. 循环的本质还是分支,while循环,for循环,与js一样,break(跳出循环),continue(跳过某次循环)
  2. 循环三要素
    2.1 条件初始化
    2.2 循环条件
    2.3 更新循环条件

数组遍历

  1. 索引数组:键名默认是从0开始递增的正整数(数值类型)
  2. 关联数组:键名是字符串(语义化)
  3. 数组的专用遍历语法:foreach($arr as $key => $value),key,value值可取其一
  4. 二维数组:每一个键的值是一个数组,foreach+table渲染到页面中

其他

count():对数组的元素进行计数
unset():清空变量值,清空完之后值为null
fopen():打开文件,参数:文件名,打开方式(r-读,w-写)

源码

  1. <?php
  2. $filename = 'xxx数据表';
  3. $filename2 = $filename;
  4. echo $filename.'<br>';
  5. echo $filename2;
  6. $filename2 = &$filename;
  7. $filename2 = 'xxx数据表2';
  8. echo $filename.'<br>';
  9. // 数据类型-回调类型:函数
  10. function sum(string $x, string $y){
  11. return $x + $y;
  12. };
  13. echo call_user_func_array('sum', [2,3]).'<br>';
  14. class demo {
  15. public function sum3(string $x, string $y){
  16. return $x * $y;
  17. }
  18. };
  19. $obj = new demo();
  20. echo call_user_func_array([$obj,'sum3'], [4,4]).'<br>';
  21. class demo2 {
  22. public static function sum2(string $x, string $y){
  23. return $x * $y;
  24. }
  25. };// static表示静态的类
  26. echo call_user_func_array(['demo2','sum2'], [3,3]).'<br>';
  27. // 单分支
  28. $score = 100;
  29. if($score >=60){
  30. echo '及格'.'<br>';
  31. };
  32. // 多分支
  33. if($score <60 && $score >= 0){
  34. echo '不及格';
  35. }elseif($score >=60 && $score < 70){
  36. echo '及格';
  37. }elseif($score >=70 && $score < 80){
  38. echo '良好';
  39. }elseif($score >=80 && $score < 90){
  40. echo '优秀';
  41. }elseif($score >=90 && $score <= 100){
  42. echo '非常优秀';
  43. }else{
  44. echo '值非法';
  45. };
  46. echo '<hr>';
  47. // switch
  48. $score = 101;
  49. switch(true){
  50. case $score <60 && $score >= 0:
  51. echo '不及格';
  52. break;
  53. case $score >=60 && $score < 70:
  54. echo '及格';
  55. break;
  56. case $score >=70 && $score < 80:
  57. echo '良好';
  58. break;
  59. case $score >=80 && $score < 90:
  60. echo '优秀';
  61. break;
  62. case $score >=90 && $score <= 100:
  63. echo '非常优秀';
  64. break;
  65. default:
  66. echo '值非法';
  67. };
  68. echo '<hr>';
  69. // 循环
  70. // while循环
  71. $i = 0;
  72. $a = 0;
  73. while($i <= 10){
  74. $a = $i+$a;
  75. $i++;
  76. };
  77. echo $a;
  78. echo '<hr>';
  79. // for循环
  80. for($i=0; $i<=11; $i++){
  81. $a = $i+$a;
  82. }
  83. echo($a);
  84. echo '<hr>';
  85. // 数组的遍历
  86. // 索引数组
  87. $arr = ['英雄','狗熊','打野','伤害',10000];
  88. print_r($arr);
  89. foreach($arr as $value){
  90. echo $value.'<br>';
  91. };
  92. echo '<hr>';
  93. // 关联数组
  94. $arr2 = ['位置'=>'双人路','英雄'=>'凯瑟琳','属性'=>'AD','伤害属性'=>'暴击加成'];
  95. foreach($arr2 as $key=>$value){ // 遍历时as后面一个参数,遍历的始终是值,而不是键
  96. echo $key.'<br>';
  97. echo $value.'<br>';
  98. };
  99. echo '<hr>';
  100. // 二维数组
  101. $arr3 = ['上单'=>['单人路','德莱厄斯','肉装','黑色切割者'],
  102. '中单'=>['中路','妖姬','法装','法师大帽'],
  103. '射手'=>['双人路','凯瑟琳','暴击输出','暴风大剑']];
  104. $tab = '<table >';
  105. $tab .= '<caption>出战列表</caption>';
  106. $tab .= '<thead><tr><th>分类</th><th>位置</th><th>英雄</th><th>出装</th><th>装备名</th></tr></thead>';
  107. $tab .= '<tbody>';
  108. foreach($arr3 as $key=>$value){
  109. // print_r($key);
  110. // print_r($value);
  111. $tab .= '<tr>';
  112. $tab .= '<td>'.$key.'</td>';
  113. $tab .= '<td>'.$value[0].'</td>';
  114. $tab .= '<td>'.$value[1].'</td>';
  115. $tab .= '<td>'.$value[2].'</td>';
  116. $tab .= '<td>'.$value[3].'</td>';
  117. $tab .= '</tr>';
  118. }
  119. $tab .= '</tbody>';
  120. $tab .= '</table>';
  121. echo $tab;
  122. echo '<hr>';
  123. ?>
  124. <?php
  125. $arr4 = [
  126. ['分类'=>'上单','位置'=>'单人路','英雄'=>'蒙多','出装'=>'肉装'],
  127. ['分类'=>'中单','位置'=>'中路','英雄'=>'妖姬','出装'=>'法术'],
  128. ['分类'=>'打野','位置'=>'野路','英雄'=>'盲僧','出装'=>'半肉'],
  129. ['分类'=>'辅助','位置'=>'双人路','英雄'=>'锤石','出装'=>'辅助装'],
  130. ['分类'=>'射手','位置'=>'双人路','英雄'=>'凯瑟琳','出装'=>'物理'],
  131. ]
  132. ?>
  133. <!DOCTYPE html>
  134. <html lang="zh-CN">
  135. <head>
  136. <meta charset="UTF-8">
  137. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  138. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  139. <title>Document</title>
  140. </head>
  141. <body>
  142. <style>
  143. table {
  144. border-collapse: collapse;
  145. text-align: center;
  146. }
  147. table th,
  148. table td {
  149. border: 1px solid black;
  150. padding: 3px;
  151. }
  152. table thead {
  153. background-color: green;
  154. }
  155. table caption {
  156. color: red;
  157. font-weight: 900;
  158. font-size: larger;
  159. }
  160. </style>
  161. <table>
  162. <caption>出战人员列表</caption>
  163. <thead>
  164. <tr>
  165. <th>分类</th>
  166. <th>位置</th>
  167. <th>英雄</th>
  168. <th>出装</th>
  169. </tr>
  170. </thead>
  171. <tbody>
  172. <!-- 常规写法 -->
  173. <?php
  174. foreach($arr4 as $value){
  175. if($value['分类'] === '辅助'){
  176. continue;
  177. };
  178. echo '<tr>';
  179. echo '<td>'.$value['分类'].'</td>';
  180. echo '<td>'.$value['位置'].'</td>';
  181. echo '<td>'.$value['英雄'].'</td>';
  182. echo '<td>'.$value['出装'].'</td>';
  183. echo '</tr>';
  184. };
  185. ?>
  186. <!-- 简略的写法 -->
  187. <?php foreach($arr4 as $value): ?>
  188. <?php if($value['分类'] != '辅助'):?>
  189. <tr>
  190. <td><?=$value['分类']?></td>
  191. <td><?=$value['位置']?></td>
  192. <td><?=$value['英雄']?></td>
  193. <td><?=$value['出装']?></td>
  194. </tr>
  195. <?php endif ?>
  196. <?php endforeach ?>
  197. </tbody>
  198. </table>
  199. </body>
  200. </html>

结果

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议