博客列表 >1月7日 学号:478291 PHP常量、数组与分支语句

1月7日 学号:478291 PHP常量、数组与分支语句

Lin__
Lin__原创
2020年01月09日 14:32:14707浏览

PHP常量

  • 可以看做是一个特殊的变量,常量在脚本执行期间值不能改变

  • 常量的命名规范同PHP标识符的命名规范相同:

    (1)由字母、数字、下划线组成,且不能以数字开头

    (2)区分大小写,推荐使用大写字母命名

    (3)两个以上的单词使用_分隔或使用驼峰命名法

  • 常量的范围是全局的。不用管作用区域就可以在脚本的任何地方访问常量。

  • 常量的定义

序号 方式 描述
1. define() 可定义常量,在类中不可使用,可使用表达式作为值
2. const 可定义常量,在类中可以使用,仅能使用字面量作为值
  • 使用:通过常量名可直接获取常量的值

  • 示例与运行结果

  1. <?php
  2. //正确的常量定义
  3. define('APP_NAME','Android APP');//等同于const APP_NAME='Android APP';
  4. echo APP_NAME.'<br />';
  5. define('_EMAIL','123@163.com');//等同于const _EMAIL='123@163.com';
  6. echo _EMAIL.'<br />';
  7. define('USER_HOST','http://'._EMAIL);
  8. echo USER_HOST.'<br />';
  9. class A{
  10. const CLASS_NAME = 'class A';
  11. }
  12. echo A::CLASS_NAME.'<br />';
  13. //错误的常量定义
  14. define('12',12);
  15. const USER_EMAIL = 'user_eamil'._EMAIL;
  16. class A{
  17. define('APP_NAME','Android APP');
  18. }

单引号、双引号与转义字符

  • 单引号:定义字符串,中间所有的内容都不会被解析,只会当做普通的字符进行输出

  • 双引号:定义字符串,可以解析变量与转义字符

    (1)如果不希望解析包含在其中的变量,可以在变量前添加\字符

    (2)如果变量后紧跟着英文字符,则变量需使用{}符号包裹

  • 转义字符:

字符 描述
\\ 代表\字符
\' 代表一个单引号
\" 代表一个双引号
\t 制表符,代表四个空格
\n 换行
  • 示例与运行结果:
  1. <?php
  2. $str1='123';
  3. $str2='1$str1\n';
  4. echo $str2.'<br />';
  5. $str3="hello $str1user";
  6. echo $str3.'<br />';
  7. $str4="hello {$str1}user";
  8. echo $str4.'<br />';
  9. $str5="hello ${str1}user";
  10. echo $str5.'<br />';
  11. $str6="hello \$str1";
  12. echo $str6;
  13. $str7="\"hello\tworld\"";
  14. echo $str7;

数组

  • 数组分类:

    (1)索引数组:键名为数值,默认从0开始

    (2)关联数组:键名为字符串,命名规范同PHP标识符的命名规范

  • 数组的创建:

    (1)使用array关键字:$变量名=array(元素1,元素2,元素3)或$变量名=array(‘键名1’=>元素1,’键名2’=>元素2,’键名3’=>元素3),若没有设置键名,默认创建的是索引数组

    (2)使用中括号来包裹数据:$变量名=[元素1,元素2,元素3]或$变量名=[‘键名1’=>元素1,’键名2’=>元素2,’键名3’=>元素3],若没有设置键名,默认创建的是索引数组

    (3)隐形定义数组:给变量增加一个中括号,系统自动变成数组。 $变量名[] = 值1或$变量名[键名] = 值 ,键名可以是数组或字符串,若没有设置键名,默认创建的是索引数组

  • 访问数组元素:

    (1)访问单个元素:$数组名[键名]

    (2)遍历数组:foreach($数组名 as $k=>$v){}或foreach($数组名 as $v){},其中:$k代表数组的键名,$v代表元素的值

  • 数组转变量:

    (1)索引数组转变量:list($变量名)=$数组名,变量的位置与数组中元素的位置一一对应

    (2)关联数组转变量:extract($数组名),键名会转换为变量名,元素值则为变量的值

    (3)变量转关联数组:compact(‘键名1’,’键名2’),键名同变量名

  • 数组转字符串: implode ( ‘连接符’ , $数组名 ) ,连接符表示将数据元素拼接在一起的符号

  • 字符串转数组:explode ( ‘分隔符’ , 字符串 )

  • 关联数组转索引数组: array_values (关联数组),该函数也可将不连续的索引数组重新设置为键名(下标)连续的数组

  • 示例与执行结果:

  1. <?php
  2. //定义索引数组
  3. $number_arr1 = array(1,2,3,4);//等同于$number_arr1 = array(0=>1,1=>2,2=>3,3=>4);
  4. var_dump($number_arr1);
  5. $number_arr2 = [5,6,7,8];//等同于$number_arr2 = [0=>5,1=>6,2=>7,3=>8];
  6. var_dump($number_ar2);
  7. $number_arr3[] = 9;//等同于$number_arr3[0] = 9;
  8. $number_arr3[] = 10;
  9. var_dump($number_arr3);
  10. echo '-------------------------------------<br />';
  11. //定义关联数组
  12. $string_arr1 = array('name'=>'Lin','sex'=>'女','eamil'=>'123@qq.com');
  13. var_dump($string_arr1);
  14. $string_arr2 = ['App_name'=>'php中文网','host'=>'php.cn'];
  15. var_dump($string_arr2);
  16. $string_arr3['date'] = '2020-01-07';
  17. $string_arr3['week'] = 'TuesDay';
  18. var_dump($string_arr3);
  19. echo '-------------------------------------<br />';
  20. //访问数组元素
  21. echo $string_arr1['name'].'的年龄是'.$number_arr3[1].'<br />';
  22. foreach($string_arr1 as $k=>$v){
  23. echo $k.'的值为'.$v.'<br />';
  24. }
  25. echo '-------------------------------------<br />';
  26. //数组转变量
  27. list($age1,$age2,$age3,$age4) = $number_arr1;
  28. echo $age1.','.$age2.','.$age3.','.$age4.'<br />';
  29. extract($string_arr3);
  30. echo $date.'是'.$week.'<br />';
  31. echo '-------------------------------------<br />';
  32. //变量转数组
  33. $company = 'PHP中文网';
  34. $address = '福建省福州市';
  35. $string_arr4 = compact('company','address');
  36. echo '-------------------------------------<br />';
  37. //数组转字符串
  38. $str1 = implode('>',$tring_arr4);
  39. echo $str1.'<br />';
  40. echo '-------------------------------------<br />';
  41. //字符串转数组
  42. $arr = explode('>',$str);
  43. var_dump($arr);
  44. echo '-------------------------------------<br />';
  45. //关联数组转索引数组
  46. $arr2 = array_values($string_arr);
  47. var_dump($arr2);

if分支语句

  • 按照条件执行代码片段
  • 语法:if(表达式) {语句},使用if语句时当表达式为真时,才执行语句;if(表达式) {语句} else{语句}使用if-else语句时当表达式为真时执行if的语句,当表达式为假时执行else的语句;if(表达式){语句 }else if(表达式){语句}…else{语句},if…else if …else语句先判断if的表达式是否为真。若为假,则判断else if的表达式,依次进行判断,当某处表达式为真,则输出该处的语句。若上面条件都不为真,则输出else的语句
  • elseif可以允许有多个,但ifelse只能有一个, if语句可以无限层地嵌套在其它if语句中
  • 示例与运行结果:
  1. <?php
  2. $count = 1;
  3. if($conut == 1){
  4. echo 'count的值是1<br />';
  5. }
  6. echo '-------------------------------------<br />';
  7. $count = 0;
  8. if($conut == 1){
  9. echo 'count的值是1<br />';
  10. }else{
  11. echo 'count的值不是1<br />';
  12. }
  13. echo '-------------------------------------<br />';
  14. $count = 3;
  15. if($conut == 1){
  16. echo 'count的值是1<br />';
  17. }else if($conut>1 && $count<4){
  18. echo 'count的值是'.$count.'<br />';
  19. }else{
  20. echo 'count的值不是1<br />';
  21. }

switch分支语句

  • 基于不同条件执行不同动作
  • 使用 Switch 语句可以避免冗长的 if..elseif..else 代码块,通常应用于单值判断
  • 基本语法:switch($变量){case 表达式/值:代码块;break;default:代码块;break;},首先对一个变量进行一次计算。将值与结构中每个 case 的值进行比较。如果存在匹配,则执行与 case 关联的代码。代码执行后,使用 break 来阻止代码跳入下一个 case 中继续执行。default 语句用于不存在匹配(即没有 case 为真)时执行。

  • 示例与运行结果:

  1. <?php
  2. $status = 3;
  3. switch($status){
  4. case 1:
  5. echo '提交成功';
  6. break;
  7. case 2:
  8. echo '提交失败';
  9. break;
  10. default:
  11. echo '状态错误';
  12. }

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