Blogger Information
Blog 2
fans 0
comment 0
visits 852
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
1月7日作业
移动用户-9132596
Original
410 people have browsed it

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. ?>

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:完成 的很棒, 希望继续坚持下去
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post