博客列表 >PHP基础--常量、数组及分支控制的创建 PHP线上培训班十期0107

PHP基础--常量、数组及分支控制的创建 PHP线上培训班十期0107

高的PHP十期培训学习笔记
高的PHP十期培训学习笔记原创
2020年01月10日 11:27:20596浏览

什么是PHP的常量

1.常量是一种特殊的变量, 仅允许初始化一次, 不允许更新, 可以理解为只读变量
2.常量没有作用域限制, 在编程的时候非常有用, 经常用来表示状态, 或数据共享
3.常量不是变量, 不需要$, 但是常量名仍然要遵守PHP标识符的命名规范(英文, 数字或下划线组成,并且不能以数字开始)
4.常量: 推荐用大写字母

PHP常量的创建方法

1.常量的创建:

  • 函数: define()
  1. //define()创建常量
  2. define('WEB_NAME','网站名称');

  • 指令: const
  1. //const 创建常量
  2. const WEB_URL = 'php.cn';
  3. echo WEB_URL,'<br>';

2.两种方法的区别:
1.相同:都可以定义常量
2.不同之处: define()可以使用表达式做为值, 而const中能用字面量
3.const:可以创建类常量,define() 不能创建类常量

单引号与双引号

1.单引号: 内部的值,按字面量的形式进行处理
单引号中的内容会原样输出,不解析内部的变量和特殊字符

  1. $name = 'PHP中文网';
  2. // \t为TAB的写法,相当于四个空格
  3. echo '$name\t的值是\t$name <br>';

2.双引号: 内部的值, 将被解析,如果值是变量名或者特殊字符,会被解析出来

  1. echo '<hr>';
  2. //不希望某个变量被解析, 可以在他的前面添加转义字符 \
  3. echo "\$name\t的值是\t$name <br>";

3.如何在字符串中输出转义字符(反斜杠)

  1. // 如何在字符串中输出转义字符
  2. echo "\\$name", '<br>';


4.双引号中的变量标识符,如果与其它字符串连接在一起会引起解析错误
解决方法是用{}包住变量名称(下面两种包法都行,建议使用第一种)

  1. echo "\$name\t的值是\t${name}aaa <br>";
  2. echo "\$name\t的值是\t{$name}bbc <br>";

索引数组和关联数组

1.索引数组:键名采用数值, 访问时依赖于元素在数组中的键名位置
1.1索引数组的创建:
逐个添加: 将每一个元素,通过赋值的方式, 直接添加/追加到数组中
$arr = [0=>1,1=>2,2=>3,3=>4];

  1. $arr[0] = 1;
  2. $arr[1] = 2;
  3. $arr[2] = 3;
  4. $arr[3] = 4;

如果键名数值是连续的,键名可以省略

  1. $arr[] = 1;
  2. $arr[] = 2;
  3. $arr[] = 3;
  4. $arr[] = 4;

$arr = [1,2,3,4];
1.2查看索引数组元素

  1. //指定键值创建
  2. $user[0] = 30;
  3. $user[1] = 'xiao wang';
  4. $user[2] = '安徽省';
  5. echo '<pre>' . print_r($user, true) . '</pre>';


1.3如果想获取到变量或数组元素的更多信息,可以使用var_dump()
var_dump($users1, $users2, $users3);
1.4索引数组的遍历

  1. foreach ($user as $i) {
  2. echo $i , '<br>';
  3. }


1.5数组元素与变量之间的转换

  1. // 数组元素与变量之间的转换, 常用于mvc模板赋值
  2. //指定键值创建
  3. $user[0] = 30;
  4. $user[1] = 'xiao wang';
  5. $user[2] = '安徽省';
  6. // list()它不是函数,是语言结构,与echo类似
  7. // 函数是绝对不允许放在等号左边接受赋值
  8. list($id, $name, $add) = $user;
  9. echo "id=>$id, name=>$name, add=>$add <br>";


1.6将索引数组转为字符串

  1. // 将索引数组转为字符串: 拉平一个数组, 存储到数据表
  2. $str = implode('====', $user);
  3. echo gettype($str), ' : ', $str, '<br>';


1.7将一个字符串,再转换成索引数组

  1. $str = '30====xiao wang====安徽省';
  2. $arr = explode('====', $str);
  3. echo '<pre>' . print_r($arr, true) . '</pre>';

2.关联数组:键名采用字符串,键名必须符合PHP标识符的命名规范,访问时不再依赖于元素在数组中的位置
$stu = ['id'=>101, 'name'=>'小胖', 'course'=>'php']
2.1关联数组的遍历同索引数组使用foreach()遍历

  1. $user['年龄'] = 30;
  2. $user['姓名'] = 'xiao wang';
  3. $user['地址'] = '安徽省';
  4. foreach ($user as $value) {
  5. echo $value , '<br>';
  6. }

2.2关联数组的遍历(带键名)

  1. foreach ($user as $key=>$value) {
  2. echo "['$key'] => $value <br>";
  3. }

2.3关联数组与变量之间的转换

  1. // 字面量方式创建
  2. $user = ['id'=>30, 'name'=> 'xiao wang', 'add'=>'安徽省'];
  3. extract($user);
  4. // $id=105; $name='电脑';$price=9000;
  5. echo "id=>$id, name=>$name, add=>$add <br>";

2.4将独立的变量, 组装成一个关联数组

  1. $id = 30;
  2. $name = 'xiao wang';
  3. $add = '安徽省';
  4. $linkParams = compact('id', 'name', 'add');
  5. echo '<pre>' . print_r($linkParams, true) . '</pre>';

2.5将关联数组转为索引数组

  1. // 字面量方式创建
  2. $user = ['id'=>30, 'name'=> 'xiao wang', 'add'=>'安徽省'];
  3. // 将关联数组转为索引数组
  4. $indexArr = array_values($user);
  5. echo '<pre>' . print_r($indexArr, true) . '</pre>';

多维数组

1.由数组当成数组元素使用,组合成的一个多维数组
(数组元素, 除了可以是原始类型, 也可以还是一个数组, 这时就形成了多维数组)
2.从数据表中的读取的记录, php会转为二维数组, 日常开发, 二维数组用得最多

  1. $users = [
  2. ['id'=> 101, 'name'=> '小王', 'grade'=> 88],
  3. ['id'=> 102, 'name'=> '小张', 'grade'=> 78],
  4. ['id'=> 103, 'name'=> '小李', 'grade'=> 68],
  5. ];
  6. // 访问
  7. //echo $users[1]['name'], '<br>';
  8. foreach ($users as $user) {
  9. //print_r($user);echo '<hr>';
  10. echo "id=>${user['id']}, name=>${user['name']}, price=>${user['grade']} <br>";
  11. }

流程控制之分支

单分支

  1. // 流程控制之分支
  2. // 1 单分支
  3. //会员组折扣率例子
  4. //金牌会员打7折,银牌会员打8折,铜牌会员打9折,普通会员不打折(默认会员组)
  5. $group_jin = 0.7;
  6. $group_yin = 0.8;
  7. $group_tong = 0.9;
  8. // 商品价格
  9. $price = 500;
  10. //应付金额
  11. $total = 0;
  12. if ($group_jin) {
  13. //当前会员组为金牌会员打7折
  14. $user_group = $group_jin;
  15. // 运算
  16. $total = $user_group * $price;
  17. // 输出
  18. echo "应付金额:$total <hr>";

双分支

  1. // 2. 双分支
  2. //购买商品达到一定金额后给予一定的折扣率
  3. ////应付金额
  4. $total = 0;
  5. // 折扣率
  6. $discount = 1;
  7. //// 金额
  8. $price = 500;
  9. //购买金额500-1000元打8折,否则不打折
  10. if ($price >= 500 && $price < 1000) {
  11. $discount = 0.8;
  12. $total = $discount * $price;
  13. echo "应付金额:$total <hr>";
  14. } else {
  15. $discount = 1;
  16. echo "应付金额:$total <hr>";
  17. }

多分支

  1. // 3. 多分支
  2. //购买商品达到一定金额后给予一定的折扣率
  3. ////应付金额
  4. $total = 0;
  5. // 折扣率
  6. $discount = 1;
  7. //// 金额
  8. $price = 2000;
  9. //购买金额500-1000元打8折,1000-2000元时打7折,否则不打折
  10. if ($price >= 500 && $price < 1000) {
  11. $discount = 0.8;
  12. $total = $discount * $price;
  13. echo "应付金额:$total <hr>";
  14. } elseif ($price >= 1000 && $price <= 2000) {
  15. $discount = 0.7;
  16. $total = $discount * $price;
  17. echo "应付金额:$total <hr>";
  18. } else {
  19. $discount = 1;
  20. echo "应付金额:$total <hr>";
  21. }

switch(), 简化多分支

  1. // 3. 简化分支
  2. //购买商品达到一定金额后给予一定的折扣率
  3. ////应付金额
  4. $total = 0;
  5. // 默认折扣率
  6. $discount = 1;
  7. //// 金额
  8. $price = 2000;
  9. // 当前指定折扣率
  10. $discount = 0.8;
  11. switch ($discount) {
  12. case 0.8:
  13. $total = $price * 0.8;
  14. break;
  15. case 0.7:
  16. $total = $price * 0.7;
  17. break;
  18. default:
  19. // default为默认;
  20. // 程序中止
  21. exit('不支持的折扣率');
  22. }
  23. echo "应付金额: $total<hr>";

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