欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

php数组的foreach和for遍历循环,以及系统函数,自定义函数的使用,数组遍历的模板语法以及定界符单引号双引号的使用

程序员文章站 2022-04-17 18:55:58
...

数组的遍历循环

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title><?php echo '数组的遍历循环'; ?></title>
  7. </head>
  8. <body>
  9. <?php
  10. $navs = [
  11. ['id' => 1, 'name' => '前端课程'],
  12. ['id' => 2, 'name' => '后端课程'],
  13. ['id' => 3, 'name' => '微信相关'],
  14. ['id' => 4, 'name' => '辅助学习'],
  15. ['id' => 5, 'name' => '可视化布局'],
  16. ];
  17. // 用foreach来遍历
  18. foreach ($navs as $key => $value) {
  19. echo "</br>键{$key}的栏目是{$value['name']}";
  20. }
  21. // 用for来遍历
  22. // for循环首先要获取数组的索引长度,用count(数组)来获取,跟js类似,先赋值一个i=0;然后i要小于数组的长度, i++递增
  23. for ($i = 0; $i < count($navs); $i++) {
  24. echo '</br>' . '键' . $i . '的栏目是' . $navs[$i]['name'] . '.';
  25. }
  26. ?>
  27. </body>
  28. </html>

数组的单引号双引号定界符

  1. <?php
  2. // error_reporting(0);//屏蔽系统错误级别,0为屏蔽,-1位不屏蔽
  3. $int = 23;
  4. var_dump($int);
  5. // 返回的是数字23
  6. $int = '23';
  7. var_dump($int);
  8. // 返回的是字符23
  9. /**
  10. * 字符串 定义在单引号、双引号、定界符
  11. * 单引号:无法解析变量与转义符
  12. * 双引号、定界符:可以解析变量与转义符
  13. * 定界符 用于输出长字符串,可以解析变量
  14. *
  15. */
  16. // 单引号示例+字符串拼接,字符串的拼接php中用 . 来拼接
  17. $age = '5';
  18. var_dump($age);
  19. echo $age;
  20. //单引号下的 字符串拼接示例, 字符串用''包裹
  21. echo '小王今年' . $age . '岁。';
  22. // 而单引号下如果不适用 . 拼接,将不识别变量 如下
  23. echo '小王今年$age岁';
  24. //双引号下将支持变量的识别解析,但不能准确的识别出变量的长短,需要用{}进行包裹,以防超出长度范围
  25. echo "小王今年{$age}岁";
  26. // 双引号/单引号示例2
  27. $name = '老王';
  28. echo "我是$name,我今年18岁。";
  29. echo '我是$name,我今年18岁。'; //单引号下将原样的输出,并不会解析出变量
  30. //定界符 <<<EXO 要输出的内容及变量 EXO; 以<<<大写字符开始 变量 大写字符结束;
  31. //先写一个一维数组
  32. $user = ['name' => '老王', 'age' => 18, 'tel' => 18888888888];
  33. //定界符好像不能再一行,如果在一行好像不能识别
  34. $username = <<<USER
  35. <div>{$user['name']}今年{$user['age']},他的电话是{$user['tel']}</div>
  36. USER;
  37. echo $username;
  38. //数组 是键值对的集合 $key => $value
  39. // 示例
  40. $user = ['name' => '老王', 'age' => 18, 'tel' => 18888888888];
  41. //访问数组内的成员
  42. echo $user['name']; //变量[键]
  43. //多维数组
  44. $users = [
  45. ['name' => '老王', 'age' => 18, 'tel' => 18888888888],
  46. ['name' => '老刘', 'age' => 19, 'tel' => 18888888889],
  47. ['name' => '老杨', 'age' => 20, 'tel' => 18888888890],
  48. ];
  49. // 先打印他的输出集合看一下
  50. var_dump($users);
  51. // 打印其中的某一个值
  52. var_dump($users[0]['name']); //多维数组中,内的数组也是有键的,键默认从0开始
  53. //2中特殊类型 (resource,null) 保存到外部资源的类型,和空类型,这里的空仅代表变量为空
  54. // resource 保存到外部资源的一个引用,资源是由专门的函数来建立和使用的
  55. // 资源类型/空类型
  56. $log = fopen('php.log', 'w'); //函数fopen()对文件操作,fopen('文件路径名','读写等操作')
  57. var_dump($log);
  58. // 发现一个问题,可能是权限不足,当时没有写入文件,用终端就行了
  59. // file_put_contents 向文件内写入文件
  60. // $read = file_put_contents('php.log', 'hello world');
  61. $read = file_put_contents('php.log', '你好啊');
  62. $reads = file_put_contents('php.log', '灭绝', FILE_APPEND);
  63. var_dump($read);
  64. var_dump($reads);
  65. //null空类型
  66. // null只是代表一个变量没有值 不代表变量内容为0,也不代表为''
  67. $avatar = null;
  68. // unset($users) //释放销毁变量 释放销毁$users变量

数组的模板语法:

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title><? echo 'php页面中与html混编使用短标签及php模板语法'; ?></title>
  7. </head>
  8. <body>
  9. <!-- 使用短标签需要在php配置文件中开启short_open_tag = On 选项 -->
  10. <?php
  11. /**
  12. * 数组的遍历操作
  13. * 数组的遍历操作
  14. * foreach ($arr as $key => $value){
  15. *
  16. * echo $value['name']
  17. * }
  18. */
  19. $navs = [
  20. ['id' => 1, 'name' => '前端课程'],
  21. ['id' => 2, 'name' => '后端课程'],
  22. ['id' => 3, 'name' => '微信相关'],
  23. ['id' => 4, 'name' => '辅助学习'],
  24. ['id' => 5, 'name' => '可视化布局'],
  25. ];
  26. var_dump($navs);
  27. foreach ($navs as $key => $value) {
  28. echo "<br>当前键为{$key}栏目为{$value['name']} ";
  29. }
  30. ?>
  31. <!-- foreach模板语法 -->
  32. <div>
  33. <ul> <!-- 原生的写法,当前写法-->
  34. <?php foreach ($navs as $key => $value) { ?>
  35. <li><?= $value['name'] ?> </li>
  36. <?php } ?>
  37. </ul>
  38. <ul>
  39. <!-- 模板语法2: 在foreach起始部分将{}去除,替换成: 尾部用endforeach替换 -->
  40. <?php foreach ($navs as $key => $value) : ?>
  41. <li><?= $value['name'] ?></li>
  42. <? endforeach ?>
  43. </ul>
  44. <ul>
  45. <!-- 模板语法3:直接遍历 输出字符串 放在""双引号中 -->
  46. <?php
  47. foreach ($navs as $key=>$value){
  48. echo "<li>{$value['name']}</li>";
  49. }
  50. ?>
  51. </ul>
  52. </div>
  53. <!-- php模板语法 为了省略流程控制中或者循环遍历中 的{}对齐问题 -->
  54. <!-- foreach ...endforeach if...endif switch... endswitch while...endwhile -->
  55. </body>
  56. </html>

php的系统函数及自定义函数

  1. <?php
  2. /**
  3. * 函数 完成特定的功能的代码块
  4. * function 函数名(参数,参数可为多个值){
  5. * 函数体
  6. * return返回值
  7. *
  8. * }
  9. *
  10. */
  11. echo mt_rand(1, 5);
  12. // mt_rand()其实就是一个函数,是系统内置的一个函数,随机数字函数
  13. echo abs(-88); //整值函数
  14. echo strtoupper('hello world'); //将小写转为大写
  15. //快速生成一个数组
  16. $arr = range(1, 10);
  17. var_dump($arr); //输出十个数组
  18. $arr = range(1, 10, 1); //随机10个数组并且间隔1
  19. var_dump($arr); //打印
  20. print_r($arr); //输出为数组格式
  21. echo strlen('hello world'); //计算长度
  22. ////上面是系统定义的函数//////
  23. // 自定义函数
  24. // 使用function 来定义函数
  25. function add($a, $b)
  26. {
  27. return $a + $b;
  28. }
  29. // 调佣函数
  30. echo add(2, 3);
  31. ob_clean();
  32. // 变量严格区分大小写,函数不区分大小写
  33. $username = 'mr.wang';
  34. echo $username;
  35. echo POW(3, 5); //求次方
  36. Var_Dump($username);
  37. ob_clean();
  38. $nows = '我不想写作业,我想玩';
  39. $res = str_replace('不想', '**', $nows);
  40. echo $res;
  41. // 以数组的方式替换 1比1数组替换
  42. $res = str_replace(['不想', '玩'], ['想使劲', '使劲写作业'], $nows);
  43. echo $res;
  44. //购物车
  45. ?>

购物车计算总和

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>购物车</title>
  7. </head>
  8. <body>
  9. <?php
  10. $arr = [
  11. ['name' => '苹果', 'id' => '1', 'num' => 1, 'price' => 5],
  12. ['name' => '矿泉水', 'id' => '2', 'num' => 1, 'price' => 2],
  13. ['name' => '冰红茶', 'id' => '3', 'num' => 1, 'price' => 5],
  14. ['name' => '大红袍', 'id' => '4', 'num' => 1, 'price' => 120],
  15. ];
  16. function pr($price, $num)
  17. {
  18. return $price * $num;
  19. }
  20. $total_price = 0;
  21. foreach ($arr as $key => $value) {
  22. $total_price += pr($value['price'], $value['num']);
  23. echo $total_price . '<br>';
  24. }
  25. ?>
  26. <table border="1" >
  27. <thead>
  28. <tr>
  29. <td>品名</td>
  30. <td>id</td>
  31. <td>数量</td>
  32. <td>价格</td>
  33. </tr>
  34. </thead>
  35. <tbody>
  36. <?php foreach ($arr as $key => $value) { ?>
  37. <tr>
  38. <td><?= $value['name'] ?></td>
  39. <td><?= $value['id'] ?></td>
  40. <td><?= $value['num'] ?></td>
  41. <td><?= $value['price'] ?></td>
  42. </tr>
  43. <?php } ?>
  44. </tbody>
  45. <tfoot>
  46. </tfoot>
  47. </table>
  48. <p>总和为:<?php echo $total_price; ?></p>
  49. <button>购买</button>
  50. </body>
  51. </html>

示例截图:
php数组的foreach和for遍历循环,以及系统函数,自定义函数的使用,数组遍历的模板语法以及定界符单引号双引号的使用