1. 编程 : 将课堂上的三个demo案例完成并提交
demo1.php
# 数据, 变量表示, 放在数据段
$pro = '小米';
# 代码, 函数表示, 放在代码段
function get_pro( $product )
{
return $product . ',欢迎您';
}
echo get_pro( $pro );
demo2.php
# 基本类型, 都是单值类型
$name = 'George';
$age = 35;
$isMarried = true;
# echo : 回显, 无返回值
echo '年龄' . $age . '<br>';
# 布尔值会发生类型转换, true -> 1, false -> 空
echo '是否已婚: ' . $isMarried . '<br>';
echo '姓名: ' . $name . '<br>';
# 字符串虽是单值, 但可以像数组一样访问
echo '我的姓是: ' . $name{0} . '<hr>';
#print: 打印,函数, 与echo功能类似, 但有返回值: 1, (echo不是函数, 是语言结构)
print('年龄' . $age . '<br>');
echo print('年龄' . $age . '<br>'), '<hr>';
# print_r($var, false|true), 若只打印一个变量, 与上面没什么区别
print_r($name);
echo '<br>';
# 若加第二参数true,则返回信息return ,而不是输出echo, 所以想要输出内容,须添加echo
echo '我姓名是:<span style="color: red">'. print_r($name, true). '</span><hr>';
# 对复合数据比较有意义
$data = range(1,20,2);
echo '<pre>'. print_r($data, true) . '</pre><hr>';
# var_export($var, false|true): 输出/返回变量的字符串表示
# 定义该变量的php代码, 如字符串会自动添上定界符引号
var_export($name);
echo '<hr>';
# var_dump($var1, $var2...): 打印一个或多个变量的结构,包括类型与值
var_dump($name, $age, $isMarried);
demo3.php
# 一 索引数组
# 1 定义
# 若有$user = []; 即追加式定义
//$user = [];
# 直接定义, 索引默认从0开始, 也可自定义
$user[] = 99;
$user[] = 'Jason';
$user[] = '123456@qq.cn';
# 字面量, 推荐方式
$user = [99, 'Jason', '123456@qq.cn'];
# 2 访问: 单个或多个成员
# echo , print只能访问单个成员,不能输出数组
echo $user[1] . '<br>';
print_r( $user );
echo '<pre>' . print_r($user, true) . '</pre>';
var_dump( $user );
echo '<hr>';
# 3 遍历: 可循环访问全部成员
# for: 索引数组, 最常用的是for循环
$res = '';
for( $i = 0; $i < count($user); $i++ ){
$res .= $user[$i] . ', ';
}
echo rtrim($res, ', ');
echo '<hr>';
# foreach
$res = '';
foreach ($user as $v ) {
$res .= $v . ', ';
}
echo rtrim($res, ', ');
echo '<hr>';
# 4 转换
# 索引数组与变量之间转换, mvc中模板赋值会用到
list($id, $name, $email) = $user;
echo $id . ' --- ' . $name . ' --- ' . $email . '<br>';
# 索引数组 -> 字符串
$str = implode(', ', $user);
echo $str, '<br>';
# 字符串 -> 数组
$arr = explode(',', $str);
print_r($arr);
echo '<br>';
echo '<hr>';
# 二 关联数组
# 1 定义
$user = ['id'=>99, 'name'=>'Jason', 'email'=>'123456@qq.cn'];
# 2 访问
echo $user['email'] . '<br>';
print_r($user); echo '<br>';
var_dump($user); echo '<br>';
var_export($user); echo '<br>';
echo '<hr>';
# 3 遍历
# foreach: 推荐
foreach ($user as $key=>$value) {
echo '[' . $key . '] => ' . $value . '<br>';
}
# for: 并不适合关联数组,借助数组指针
$res = '';
for ($i = 0; $i < count($user); $i++ ) {
# 获取当前指针处的数组成员
$res .= current($user) . ', ';
# 将指针后移
next($user);
}
echo rtrim($res, ', ');
echo '<hr>';
# 4 转换
# 关联数组与变量之间的转换
# 索引数组需用list()提供变量名, 关联数组可直接用键名做变量名
# 关联数组 -> 独立变量 extract()
extract($user); # 等同 $user = ['id'=>101, 'name'=>'admin', 'email'=>'admin@php.cn'];
echo 'id = ' . $id . ', name = ' . $name . ', email = ' . $email . '<br>';
# 独立变量 -> 关联数组: compact()
$dsn = 'mysql:host=127.0.0.1;dbname=zsgc';
$username = 'root';
$pwd = 'root';
$linkParams = compact('dsn', 'username', 'pwd');
print_r( $linkParams );
echo '<hr>';
# 关联数组 -> 数组
print_r( array_values($user) );