Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:那只是不推荐的提示, 常量全部大写是行业规范, 忘掉小写常量吧
此次作业主要思路是复习理解知识点并将其分类,再写自己的示例检查代码效果和排错!
这次作业中遇到了较多提示(应该不是报错),自己查询翻译了下应该是提示,但是代码运行都是正常的,是不是php集成环境的提示?然后我对数组的转换函数,如‘implode()’,其实我在w3c客户端查询了其说明,在自己写示例时脑子更加清晰,手册啥的随时备查吧!
<?php
// 1.php常量两种创建方式
// define(),可以设置是否大小写敏感
// 敏感
define('APPLE_COLOR','white');
echo APPLE_COLOR;
// 不敏感
define('APPLE_NAME','苹果',true);
echo apple_name . '<br>';
// const 只能用字面量
const APPLE_NAME1 = '苹果手机';
echo APPLE_NAME1;
?>
<?php
// 2.双引号对变量和特殊字符的处理
$wps = '好用的办公软件';
// 双引号解析变量和转义符的使用
echo "$wps" . '<br>';
echo "\$wps的值是$wps". '<br>';
echo "\\$wps";
echo '<hr>';
// 特殊字符的处理
echo "\$wps的值是\t$wps";
echo '<hr>';
echo "\$wps的值是\t${wps}very good!";
echo '<hr>';
?>
<?php
// 3.索引数组和关联数组的常用操作
// 索引数组---创建与访问
$student1[0] = 1001;
$student1[1] = '小明';
$student1[2] = 15;
$str = print_r($student1,true);
echo $str . '<br>';
// 参看变量类型
echo gettype($student1) . '<br>';
// 不写键名
$student2[] = 1002;
$student2[] = '小李';
$student2[] = 16;
$str = print_r($student2,true);
echo $str . '<br>';
// 通过字面量一次性添加多个元素
$student3 = [1003, '小张', 13];
// 源码格式打印
echo '<pre>' . print_r($student2,true) . '</pre>' . '<br>';
// 使用var_dump()查看变量或数组的更多信息
var_dump($student1,$student2,$student3);
// 数组某个元素,当成变量访问
echo $student3[2] . '<br>';
// foreach()遍历数组
foreach ($student1 as $student) {
echo $student . '<br>';
}
// list():把数组中的值赋给一些变量,仅用于索引数组
list($id, $name, $age) = $student3;
echo "id=>$id, name=>$name, age=>$age <br>";
echo "名字叫${name}的同学,学号是${id},年龄是${age}!" . '<br>';
// implode():将索引数组转为字符串:拉平一个数组,存储到数据表
$str = implode(',',$student3);
echo gettype($str), ':', $str, '<br>';
// 将一个字符串,再转换成索引数组
$str = '1004,小刘,20';
$arr = explode(',',$str);
echo '<pre>' . print_r($arr,true) . '</pre>';
echo '<hr>';
// 关联数组---创建与访问
// 键名采用语义化的字符串,访问时不再依赖于元素在数组中的位置
$teacher1['id'] = 6001;
$teacher1['name'] = '刘老师';
$teacher1['age'] = 39;
echo '<pre>' . print_r($teacher1,true) . '</pre>' . '<br>';
// 字面量方式创建
$teacher2 = ['id'=>6002, 'name'=>'王老师', 'age'=>56];
echo "${teacher2['name']}编号是${teacher2['id']},今年${teacher2['age']}了,外号\"old王\"" . '<br>';
// foreach()遍历数组
foreach ($teacher2 as $teacher) {
echo $teacher . '<br>';
}
foreach ($teacher2 as $key=>$teacher) {
echo "['$key'] => $teacher, <br>";
}
// extract():将关联数组转换为变量,键名为变量名,键值为变量值
extract($teacher2);
echo "id=>$id, name=>$name, age=>$age <br>";
// compact():将多个变量组装成一个数组
$tec_id = 6003;
$tec_name = '赵老师';
$tec_age = '50';
$teacher3 = compact(tec_id,tec_name,tec_age);
echo gettype($teacher3) . '<br>';
echo '<pre>' . print_r($teacher3,true) . '</pre>'. '<br>';
// 将关联数组转为索引数组
$tec = array_values($teacher3);
echo '<pre>' . print_r($tec,true) . '</pre>';
// 多维数组的创建与访问
$teachers = [
['id'=>6001, 'name'=>'刘老师', 'age'=> 39],
['id'=>6002, 'name'=>'王老师', 'age'=> 56],
['id'=>6003, 'name'=>'赵老师', 'age'=> 50],
];
// 访问
echo '<pre>' . print_r($teachers,true) . '</pre>'. '<br>';
echo $teachers[0]['name'] . '<br>';
foreach ($teachers as $Teacher) {
echo "id=>${Teacher['id']}, name=>${Teacher['name']}, price=>${Teacher['age']} <br>";
}
?>
<?php
// 4.分支控制的基本实现
$age = 20;
$gender = '男';
$retire = '好好工作';
// 单分支
if ($age < 55) {
$retire = '好好工作!';
}
echo "性别:$gender, 年龄:$age, 退休:$retire <hr>";
// 双分支
$age = 58;
if ($age >= 55 && $age < 65) {
$retire = '可以退休,鼓励再干几年!';
}
echo "性别:$gender, 年龄:$age, 退休:$retire <hr>";
// 多分支
$age = 66;
if ($age >= 55 && $age < 65) {
$retire = '可以退休,鼓励再干几年!';
} elseif ($age >=65) {
$retire = '干了一辈子了,享享清福吧!';
}
echo "性别:$gender, 年龄:$age, 退休:$retire <hr>";
// switch()简化多分支
$age = 50;
switch (true) {
case $age >= 55 && $age < 65;
$retire = '可以退休,鼓励再干几年!';
break;
case $age >=65;
$retire = '干了一辈子了,享享清福吧!';
break;
default:
$retire = '好好工作!';
}
echo "性别:$gender, 年龄:$age, 退休:$retire <hr>";
// switch()更多应用场景是单值判断
$age = 51;
$gender = '女';
switch ($gender) {
case '女':
$retire = '可以退休,也鼓励再干几年!';
break;
case '男':
$retire = '不可以退休!!!';
break;
default:
exit('请选择性别');
}
echo "性别:$gender, 年龄:$age, 退休:$retire <hr>";
?>