Blogger Information
Blog 25
fans 1
comment 1
visits 20520
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
PHP基础--常量、数组及分支控制的创建 PHP线上培训班十期0107
高的PHP十期培训学习笔记
Original
597 people have browsed it

什么是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>";

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