博客列表 >1月7日作业

1月7日作业

移动用户-9132596
移动用户-9132596原创
2020年01月09日 23:06:26409浏览

1.常量的创建与访问

  • 常量是一种特殊的变量,只能初始化一次,不允许更新。没有作用域限制,常量不是变量不需要”$”,但是常量还是要遵守php标识符的命名规范
  • 常量的创建有两种方式: 函数:define()以及 指令:const。两者的相同之处是都可以定义常量,不同之处是define()可以使用表达式,而const中能用字面量
  1. <?php
  2. //define()创建常量
  3. define('APP_NAME','淘宝');
  4. //const创建常量
  5. const APP_PATH = 'app/admin/index/index.php';
  6. echo APP_NAME ,'<br>', APP_PATH ,'<br>';
  7. //define()与const的不同之处
  8. //1.const可以创建类常量而define不能
  9. class A
  10. {
  11. const NATION = 'USA';
  12. //define('USER_NAME','admin');
  13. }
  14. echo A::NATION,'<br>';
  15. //2.define()定义的常量允许使用表达作为值,而const只能用字面量
  16. $domain = 'qq.cn';
  17. define('MY_EMAIL','admin@'.$domain);
  18. echo MY_EMAIL,'<br>';
  19. //const MY_EMAIL = 'admin@qq.cn'


2.双引号对变量和特殊字符的处理方式

  • 双引号内部的值如果是变量名或者特殊字符会被解析出来。单引号内部的值按字面量的形式进行处理。
  1. <?php
  2. //双引号的变量盒特殊字符会被解析
  3. $name = 'oyster';
  4. echo "$name\t的值是\t$name <br>";
  5. //如果不希望第一个变量被解析,使用转义字符,在第一个$name前加/
  6. echo "\$name\t的值是\t$name <br>";
  7. //如果想在双引号或者单引号中引用自身,也可以使用转义字符
  8. echo '$name\t的值是\t\'$name\' <br>';
  9. echo "\$name\t的值是\t\"$name\" <br>";
  10. //在字符串中输出转义字符
  11. echo "\\$name",'<br>';
  12. //双引号中的变量标识符,如果和其他字符串连接在一起回引起解析错误
  13. echo "\$name\t的值是\t$namehello <br>";
  14. //将变量进行包装{}即可被解析
  15. echo "\$name\t的值是\t${name}hello <br>";
  16. echo "\$name\t的值是\t{$name}hello <br>";


3 索引数组与关联数组的常用操作

3.1 索引数组

  1. <?php
  2. // 1. 索引数组
  3. // 1.1 创建索引数组
  4. $user1[0] = 10;
  5. $user1[1] = 'admin';
  6. $user1[2] = 'admin@php.cn';
  7. //查看全部元素,使用print_r()函数
  8. print_r($user1);
  9. //echo gettype($user1);获取变量类型
  10. //print_r($user1,true);第二个参数设为true回返回给调用者
  11. $str = print_r($user1,true);//保存到一个变量里
  12. echo '<pre>' . $str . '</pre>'; //格式化
  13. //可以省略键名
  14. $user2[] = 10;
  15. $user2[] = 'admin';
  16. $user2[] = 'admin@php.cn';
  17. $user2[] = 'oyster';
  18. echo '<pre>' . print_r($user2,true) . '</pre>';
  19. // 通过字面量一次性添加多个元素
  20. $user3 = [20,'oyster','oyster@qq.com'];
  21. echo '<pre>' . print_r($user3,true) . '</pre>';
  22. // 如果想获取到变量或者数组元素的类型和值,可以使用var_dump()
  23. var_dump($user1,$user2,$user3); echo '<br>'; echo '<br>'; //可打印多个数据
  24. // 1.2 访问索引数组
  25. // 访问某一个元素,当成变量
  26. echo $user3[1],'<br>','<br>';
  27. // 访问多个值,用foreach,$item是临时变量
  28. foreach($user3 as $item)
  29. {
  30. echo $item,'<br>';
  31. }
  32. // 1.3 数组元素与变量之间的转换
  33. $user3 = [20,'oyster','oyster@qq.com'];
  34. list($id,$name,$email) = $user3;
  35. //list()里面的变量名是用户自己定义的,list()是语言结构,不是函数
  36. echo "id=>$id,name=>$name,email=>$email <br>";
  37. // 1.4 将索引数组转为字符串:拉平一个数组,存到数据表里
  38. $str = implode(',',$user3); //第一个参数是分割符,自己定义,这里用逗号分割
  39. echo gettype($str), ':',$str ,'<br>';
  40. //$sql = "INSERT `users` SET `comment`= ${str};
  41. //将一个字符串,再转换成索引数组
  42. $str = 'html,css,js,php,laravel';
  43. $arr = explode(',',$str); //用逗号切割
  44. echo '<pre>' . print_r($arr,true) . '</pre>';
  45. ?>


3.2 关联数组

  1. // 2.关联数组
  2. // 2.1 键名采用语义化的字符串,访问时不再依赖于元素在数组中的位置
  3. $products1['id'] = 100;
  4. $products1['name'] = '手机';
  5. $products1['price'] = 5000;
  6. echo '<pre>' . print_r($products1,true) . '</pre>';
  7. echo '<br>';
  8. // 2.2 字面量方式创建
  9. $products2 = ['id'=>105,'name'=>'电脑','price'=>9000];
  10. //也用foreach遍历
  11. foreach($products2 as $value)
  12. {
  13. echo $value,'<br>';
  14. }
  15. //拿到键
  16. foreach($products2 as $key=>$value)
  17. {
  18. echo "['$key'] => $value <br>";
  19. }
  20. // 2.3 关联数组与变量之间的转换
  21. extract($products2); //使用extract()函数 将数组解析为一个一个变量
  22. echo "id=>$id,name=>$name,price=>$price <br>";
  23. //使用compact()函数,将一些独立的变量组装成一个关联数组
  24. $dsn = 'mysql:hosr=localhost;dbname=php';
  25. $username = 'root';
  26. $password = 'root';
  27. $linkParams = compact('dsn','username','password');
  28. echo '<pre>' . print_r($linkParams,true) . '</pre>';
  29. // 2.4 将关联数组转为索引数组 使用array_values() 它支取值,不取键
  30. $indexArr = array_values($products2);
  31. echo '<pre>' . print_r($products2,true) . '</pre>';
  32. echo '<pre>' . print_r($indexArr,true) . '</pre>';
  33. // 3. 多维数组
  34. // 二维数组的创建
  35. $users = [
  36. ['id'=>101,'name'=>'小智','grade'=>98],
  37. ['id'=>105,'name'=>'小刚','grade'=>99],
  38. ['id'=>106,'name'=>'小霞','grade'=>100],
  39. ];
  40. //访问
  41. echo $users[1]['id'],'<br>';
  42. foreach($users as $user)
  43. {
  44. echo "id=>{$user['id']},name=>{$user['name']},price=>{$user['grade']} <br>";
  45. }


4 分支控制的所有形式基本实现

  1. <?php
  2. //流程控制之分支
  3. // 1 单分支
  4. // 购买数量
  5. $count = 15;
  6. // 单价
  7. $price = 50;
  8. // 金额
  9. $total = 0;
  10. // 折扣率
  11. $discount = 1;
  12. if($count >=10 && $count < 20)
  13. {
  14. $discount = 0.9;
  15. }
  16. $total = $count * $price * $discount;
  17. echo "购买数量:$count, 总金额:$total, 折扣率: $discount <hr>";
  18. // 2. 双分支
  19. $count = 25;
  20. if($count >=10 && $count < 20)
  21. {
  22. $discount = 0.9;
  23. }else{
  24. $discount = 1;
  25. }
  26. $total = $count * $price * $discount;
  27. echo "购买数量:$count, 总金额:$total, 折扣率: $discount <hr>";
  28. // 3 多分支
  29. $count = 35;
  30. if($count >=10 && $count < 20)
  31. {
  32. $discount = 0.9;
  33. }elseif($count >= 20&&$count < 30){
  34. $discount = 0.8;
  35. }elseif($count >= 30){
  36. $discount = 0.7;
  37. }else{
  38. $discount = 1;
  39. }
  40. $total = $count * $price * $discount;
  41. echo "购买数量:$count, 总金额:$total, 折扣率: $discount <hr>";
  42. // 4 switch(),简化多分支
  43. $count = 8;
  44. switch(true)
  45. {
  46. case $count >=10 && $count < 20;
  47. $discount = 0.9;
  48. break;
  49. case $count >= 20 && $count < 30;
  50. $discount = 0.8;
  51. break;
  52. case $count >= 30;
  53. $discount = 0.7;
  54. break;
  55. default:
  56. $discount = 1;
  57. }
  58. $total = $count * $price * $discount;
  59. echo "购买数量:$count, 总金额:$total, 折扣率: $discount <hr>";
  60. //switch()更多用于单值判断
  61. $discount = 0.55;
  62. $count = 8;
  63. switch($discount)
  64. {
  65. case 1:
  66. $total = $count * $price * 1;
  67. break;
  68. case 0.9:
  69. $total = $count * $price * 0.9;
  70. break;
  71. case 0.8:
  72. $total = $count * $price * 0.8;
  73. break;
  74. case 0.97:
  75. $total = $count * $price * 0.97;
  76. break;
  77. default:
  78. exit('不支持的折扣率');
  79. }
  80. ?>

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