博客列表 >12月2日_PHP基础复习(计算机中信息的表示、数据类型、流程控制、数组)

12月2日_PHP基础复习(计算机中信息的表示、数据类型、流程控制、数组)

fkkf467
fkkf467原创
2019年12月03日 23:30:04629浏览

1. 数据与代码在程序中是如何体现的

  1. <?php
  2. // 数据:变量表示,放在数据段
  3. $site = 'PHP中文网';
  4. // 代码:函数表示,放在代码段
  5. function get_site($webSite){
  6. return $webSite . '欢迎您';
  7. }
  8. // 调用执行,指令一条一条的进入到CPU中
  9. echo get_site($site);
  10. ?>

2. 数据的表示与访问

  1. <?php
  2. $name = 'Abby';
  3. $age = 18;
  4. $isGrow = true;
  5. // 单值读取
  6. // echo: 回显,无返回值
  7. echo $name . '的年龄是' . $age . '<br>';
  8. // 布尔值会发生类型转换,true => 1,false => 空
  9. echo '是否成年:' . $isGrow . '<br>';
  10. // 字符串
  11. echo '姓名是 ' . $name . '<br>';
  12. // 字符串虽然是单值,但却可以像数组一样访问
  13. echo '我的名字的第一个字母是:' . $name{0} . '<br>';
  14. // print: 打印,与echo功能类似,但是会有返回值:1
  15. print('年龄:' . $age . '<br>');
  16. echo print('年龄' . $age . '<br>'); // 会输出返回值 1
  17. echo '<br>';
  18. // print_r($var, false|true):以更容易理解的方式打印变量,r: readily易于理解
  19. // 如果仅仅打印一个变量,看上去似乎与之前没有区别
  20. print_r($name);
  21. echo '<br>';
  22. // 如果添加了第二参数true,则是返回信息return,而不是输出echo
  23. echo print_r($name, true);
  24. // 这样做,对于简单,类似单值变量的意义不大,但对于复合数据意义非凡
  25. $data = range(1,20,2);
  26. // 因为第二个参数true的存在,使该函数只是返回了数据,而不是直接输出
  27. // 所以,我们可以根据自己的要求,任意的格式化需要输出的数据,使之更好阅读
  28. echo '<pre>' . print_r($data,true) . '</pre>';
  29. // var_export($var, false|true) 输出/返回变量的字符串表示
  30. // 其实就是定义该变量的php代码而已,例如,字符串会自动添上定界符引号
  31. var_export($name);
  32. echo '<br>';
  33. // var_dump($var1,$var2...): 打印一个或多个变量的结构,包括类型和值
  34. var_dump($name,$age,$isGrow);

3. 索引数组与关联数组

  1. <?php
  2. // 数组定义
  3. // 一. 索引数组
  4. // 1. 定义
  5. // 如果有$user = []; 就是追加式定义
  6. // 直接定义,索引默认从0开始,也可自定义,并不要求连续
  7. $user[] = 1001;
  8. $user[] = 'admin';
  9. $user[] = 'admin@php.cn';
  10. // 推荐方式
  11. $user = [1001, 'admin', 'admin@php.cn'];
  12. // 2. 访问:单个或多个成员
  13. // 简单变量中的echo, print 只能访问单个成员,不能输出数组
  14. // 单个数组成员
  15. echo $user[2] . '<br>';
  16. print_r($user);
  17. echo '<pre>' . print_r($user, true) . '</pre>';
  18. var_dump($user);
  19. echo '<hr>';
  20. // 3. 遍历:可循环访问全部成员
  21. // 3.1 for: 索引数组,最常用的是for循环
  22. $res = '';
  23. for ($i = 0; $i < count($user); $i++) {
  24. $res .= $user[$i] . ', ';
  25. }
  26. // 去掉最后的', ', 输出遍历结果
  27. echo rtrim($res, ', ') . '<hr>';
  28. // 3.2 foreach
  29. $res = '';
  30. foreach ($user as $item) {
  31. $res .= $item . ', ';
  32. }
  33. echo rtrim($res, ', ') . '<hr>';
  34. // 4. 转换
  35. // 4.1 索引数组与变量之间的转换,mvc中模板赋值会用到
  36. list($id, $name, $email) = $user;
  37. echo $id . '--' . $name . '--' . $email . '<br>';
  38. // 4.2 索引数组转字符串:将数组扁平化存储会用到,例如将数组存储到数据表的字段中
  39. $str = implode(',', $user);
  40. echo $str . '<br>';
  41. $sql = "INSERT `users` SET `comment` = {$str};";
  42. echo $sql . '<br>';
  43. // 将一个字符串转换成数组
  44. $arr = explode(',', $str);
  45. print_r($arr);
  46. echo '<br>';
  47. // 注意:索引不推荐使用while遍历,如果一定要这样做,可以这样写
  48. // each() 有可能会在以后的版本中删除,有可能会看到不推荐使用的警告信息
  49. while (list($key, $value) = each($user)) {
  50. echo "[{$key}]=>{$value}<br>";
  51. }
  52. echo '<hr>';
  53. // 二. 关联数组
  54. // 1. 定义
  55. $user = ['id' => 1001, 'name' => 'admin', 'email' => 'admin@php.cn'];
  56. // 2. 访问
  57. echo $user['name'] . '<br>'; // 单值访问
  58. print_r($user);
  59. echo '<br>';
  60. var_dump($user);
  61. echo '<br>';
  62. var_export($user);
  63. echo '<hr>';
  64. // 3. 遍历
  65. // 3.1 foreach 推荐使用的
  66. foreach ($user as $key => $value) {
  67. echo '[' . $key . '] => ' . $value . '<br>';
  68. }
  69. // 3.2 for 并不适合关联数组,但是借助数组指针,也可以完成遍历
  70. $res = '';
  71. for ($i = 0; $i < count($user); $i++) {
  72. // 获取当前指针处的数组成员
  73. $res .= current($user) . ', ';
  74. // 指针前移到下一个数组成员的位置上
  75. next($user);
  76. }
  77. echo rtrim($res, ', ') . '<hr>';
  78. // 4. 转换
  79. // 4.1 关联数组与变量之间的转换
  80. extract($user);
  81. echo 'id= ' . $id . ', name = ' . $name . ', email = ' . $email . '<br>';
  82. // 既然可以将数组拆分成独立变量,就可以将独立变量再组装成关联数组: compact()
  83. $dsn = 'mysql:host=localhost;dbname=demo;';
  84. $username = 'root';
  85. $password = 'root';
  86. $linkParams = compact('dsn','username','password');
  87. print_r($linkParams);
  88. echo '<hr>';
  89. // 4.2 关联数组转索引数组
  90. print_r(array_values($user));
  91. echo '<hr>';
  92. // 4.3 关联数组转字符串
  93. $str = implode('-',$user);
  94. echo $str . '<br>';
  95. // 字符串转数组
  96. $arr = explode('-',$str);
  97. print_r($arr);
  98. echo '<hr>';
  99. // 三. 数组排序
  100. // sort() 以升序对数组排序
  101. $arr = ['xiaomi','meizu','apple'];
  102. sort($arr);
  103. print_r($arr);
  104. echo '<br>';
  105. // rsort() 以降序对数组排序
  106. rsort($arr);
  107. print_r($arr);
  108. echo '<br>';
  109. $price = ['xiaomi'=>1999,'meizu'=>1799,'apple'=>5999];
  110. // asort() 根据值,以升序对关联数组进行排序
  111. asort($price);
  112. print_r($price);
  113. echo '<br>';
  114. // arsort() 根据值,以降序对关联数组进行排序
  115. arsort($price);
  116. print_r($price);
  117. echo '<br>';
  118. // ksort() 根据键,以升序对关联数组进行排序
  119. ksort($price);
  120. print_r($price);
  121. echo '<br>';
  122. // krsort() 根据键,以降序对关联数组进行排序
  123. krsort($price);
  124. print_r($price);

4. 基础知识手抄




5. 总结

通过以上实例练习以及手抄基础知识,对php有了更深刻的理解和认识。

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