0107作业:PHP初入门-常量、数组和流程分支
1、PHP
中的常量
- 常量是一种特殊的变量,只允许创建,不允许更新,就像身份证号,人一生只能有一个号;
- 常量没有作用域限制,经常用于表示状态,或数据共享,就像身份证号,可以买车票,也可以开房;
- 常量不是变量,所以不需要美元$开头,但是仍然要遵循
php
标识符的命名规范; - 常量的创建;
- 函数:
define();
php
代码示例:
define('WEB_NAME','php中文网');
示例图
const WEB_URL = 'https://www.php.cn';
示例图
区分
define()
和const
;相同:都可以创建常量;
不同:
define()
定义常量可以使用表达式,const
只能是字面量;define()
代码示例$city = '100101'; //城市编码
$dateBirth = '20200101'; //出生日期
$discern = '3869'; //识别码
//创建一个身份证号的常量 ID_CARD
define('ID_CARD', $city . $dateBirth . $discern);
echo ID_CARD;
define()
示例图
const
代码示例
$city = '100101'; //城市编码
$dateBirth = '20200101'; //出生日期
$discern = '3869'; //识别码
//创建一个身份证号的常量 ID_CARD
const ID_CARD = $city . $dateBirth .$discern ; //不能用表达式创建常量,会报错
echo ID_CARD;
const
示例图
define()
不能创建类常量,const
可以创建类常量;
define()
代码示例
class NAME {
define('FAMILY_NAME','LI');//不能创建类常量,报错;
}
echo echo NAME::FAMILY_NAME;
define()
示例图
const
代码示例
class NAME
{
const FAMILY_NAME = 'CHINA';
}
echo NAME::FAMILY_NAME;
const
示例图
2、单引号和双引号
- 单引号内部的值会按字面量输出;
- 双引号会解析变量和特殊字符;
示例图
3、数组的基本操作
3.1、创建数组
- 字面量:将多个元素放在一个
[]
中,多个元素用,
隔开,组成一个数组;
php
代码示例
$arr1 = [1,2,3,4];
- 逐个追加:把单个元素通过赋值的方式添加/追加到数组中;
php
代码示例
$arr2 = [0=>1,1=>2,2=>3,3=>4];
两种方法示例图
- 如果数组元素的键名是数值,就是索引数组,如果键名是连续的,键名可以省略;
php
代码示例
$arr1 = [1,2,3,4];//是一个省略了键名的索引数组
- 创建索引数组:用
数组名[键名] = 值;
的方式创建
php
代码示例
$student[0] = '小明';
$student[1] = '16岁';
$student[2] = '高一';
//注意:在这个地方键名是可以省略的;
$student[] = '小明';
$student[] = '16岁';
$student[] = '高一';
//也可以使用字面量一次创建
$student = ['小明','16岁','高一'];
示例图
示例图
索引数组的遍历
foreach
遍历;
php
代码示例
$student = ['小明','16岁','高一'];
foreach($student as $item){
echo $item;
}
示例图
- 数组元素与变量之间的转换,通常mvc模板赋值
php
代码示例
$student = ['小明','16岁','高一'];
list($name,$age,$grade) = $student;
echo "name=>$name,age=>$age,grade=>$grade";
示例图
将索引数组转换为字符串,拉平一个数组,存到数据表中,
用法:
字符串名字 = implode('分隔符', 转换的数组);
php
代码示例
$student = ['小明','16岁','高一'];
$str = implode(',',$student);
将字符串转换为索引数组,
用法:
数组名字 = explode('分隔符', 字符串名字);
php
代码示例
$str = '小明,16岁,高一';
$arr = explode(',',$str);
示例图
2、关联数组
键名采用语义化的字符串,不在依赖于元素在数组中的位置
php
代码示例
$student5['name'] = '小明';
$student5['age'] = '16岁';
$student5['grade'] = '高一';
//可以通过字面量一次创建
$student6 = ['name'=>'小明', 'age'=>'16岁', 'grade'=>'高一'];
示例图
- 遍历关联数组
php
代码示例
foreach ($student6 as $value){
echo $value , '<br>';
}
//带上键名遍历
foreach ($student6 as $key=>$value){
echo "['$key'] => $value <br>";
}
示例图
关联数组和变量之间的转换
转换为变量;
extract(数组名)
变量组装数组;
compact(变量1,变量2,变量3,
php
代码示例
$atr6 = extract($student6)
//把变量组装成关联数组
$student7 = compact('name','age','grade');
示例图
- 把关联数组转为索引数组:索引数组名字 = array_values(关联数组名字);
php
代码示例
$student6 = ['name'=>'小明', 'age'=>'16岁', 'grade'=>'高一'];
$student8 = array_values($student6);
示例图
3、多维数组
数组元素,除了原始类型,也可以是一个数组
php
代码示例
$student9 = [
['小明','16岁','高一'],
['小张','17岁','高二'],
['小王','15岁','初三'],
];
示例图
- 读取多维数据库的值;数组名[键名][‘取值的键名’]就可以去除第键值为1的数组中 name的值;
php
代码示例
$student9 = [
['小明','16岁','高一'],
['小张','17岁','高二'],
['小王','15岁','初三'],
];
$student9[1]['name'];
示例图
- 遍历多维数组
php
代码示例
$student9 = [
['小明','16岁','高一'],
['小张','17岁','高二'],
['小王','15岁','初三'],
];
foreach ($student9 as $items) {
// print_r($user);echo '<br>';
echo "name=>${items['name']}, age=>${items['age']}, grade=>${items['grade']} <br>";
}
示例图
流程控制之分支
1、单分支
php
代码示例
$fraction = 90;
if($fraction >= 80 && $fraction <= 100){
echo '优秀';
}
示例图
多分支
- if 判断
php
代码示例
$fraction = 98;
if($fraction >= 80 && $fraction <= 100){
echo '优秀';
}elseif ($fraction >= 70 && $fraction < 80){
echo '良好';
}elseif ($fraction >= 60 && $fraction < 70){
echo '及格';
}else{
echo '不及格';
}
示例图
- switch 判断
php
代码示例
$num = 4 ;
switch ($num){
case 1:
echo "你就是1";
break;
case 2:
echo "你就是2";
break;
case 3:
echo "你就是3";
break;
default:
exit("没有你选的数字");
}
示例图
总结
常量是不变的,有通用的属性;
数组是有组织的,索引是有号的,关联是有名的;
判断是有条件的,满足就给你,不满足就默认;