12月2日作业:
1. 编程 : 将课堂上的三个demo案例完成并提交
demo1
<?php
$site = 'www.emagic.cn';
function get_site($webSite)
{
return $webSite . ' 欢迎您!';
}
echo get_site($site);
?>
demo2
<?php
$name = 'Emagic'; //name是变量名,值是字符串类型
$age =28;
$isMarried = true;
//取值访问方式
//方式1 echo 回显 无返回值
echo '年龄' .$age.'<br>';
//echo布尔值会发生类型转换 true-1 false-null 空
echo '是否已婚?' .$isMarried.'<br>';
//字符串
echo '姓名:' .$name .'<br>';
//数组方式访问姓名中的第n个字符
echo '姓名中的第三个字符'.$name{2}.'<br>';
//这里等价于$name[3],为了代码可读性,不将字符串误认为是数组,用{}花括号,[]单独留给数组用
echo '<hr>';
//方式2 print() 打印 有返回值
print ('年龄' .$age.'<br>');
echo print('年龄' .$age.'<br>');
echo '<hr>';
//方式3 print_r() 以更加容易理解的方式打印 返回变量
print_r($name);
echo '<br>';
//加了true返回的是字符串
echo '我的姓名是:<span style="color: red">'.print_r($name,true).'</span><br>';
$data=range(1,20,2);
echo '<pre>' .print_r($data,true).'</pre>';
print_r('<hr>');
//方式4 var_export 输出/返回这个变量的字符串表示(PHP代码)
var_export($name);
echo '<hr>';
var_export($data);
$arr=array ( 0 => 1, 1 => 3, 2 => 5, 3 => 7, 4 => 9, 5 => 11, 6 => 13, 7 => 15, 8 => 17, 9 => 19, );
print_r($arr);
echo '<hr>';
//方式5 var_dump 打印一个变量,包括类型、值
var_dump($name,$age,$isMarried,$arr);
demo3
<?php
//1.数组定义
//(一)索引数组定义
//追加式定义
//$user=[];
//$user[]=101;
//$user[]='admin';
//$user[]='admin&php.cn';
//推荐方式↓
$user=[101,'admin','admin@php.cn'];
//2.访问
echo $user[2].'<br>'; //访问单个成员
echo '<pre>' .print_r($user,true).'</pre><br>' ; //访问多个成员
var_dump($user);
echo '<hr>';
//3.遍历
//for遍历
$res='';
for($i=0;$i<count($user);$i++){
$res .=$user[$i].',';
}
echo rtrim($res,', ') ;
echo '<hr>';
//foreach 遍历
$res='';
foreach ($user as $key=>$item) {
$res .=$key.'--'.$item.',';
}
echo rtrim($res,', ').'<br>';
//4.转换
//索引数组和变脸之间如何转换?可以用在MVC中的模板赋值
list($id,$name,$email)=$user;
//list()只转换索引数组
echo $id.'---'.$name.'---'.$email.'<br>';
//索引数组转为字符串,数据表中存储
$str=implode(',',$user);
echo $str.'<br>';
$sql="INSERT `users` SET `comment`='{$str}';";
//将字符串还原为数组
$arr=explode(',',$str);
print_r($arr);
echo '<hr>';
/******************************************/
//(二)关联数组
//1.定义
$user=['id'=>101,'name'=>'admin','email'=>'admin@php.cn'];
//2.访问
//单值访问
echo $user['email'].'<br>';
//多值访问
echo '<pre>' .print_r($user,true).'</pre><br>' ;
//3.遍历
//关联数组推荐用foreach 遍历
foreach ($user as $key=>$item) {
echo '['.$key.']=>'.$item .'<br>';
}
//当然也可以用for遍历,借助数组指针
$res='';
for ($i=0;$i<count($user);$i++){
// 获取指针当前位置的数组成员
$res.=current($user).', '; // $res.= 等号前面加个点,对结果进行累加,否则只显示最后一个
// 将指针后移
next($user);
}
echo rtrim($res,', ') ;
echo '<hr>';
echo '<hr>';
//4.转换
//关联数组与变量之间进行转换,应用场景:MVC模板赋值,推荐使用
extract($user);
echo 'id= '.$id.'<br> name= '.$name .'<br> email = ' .$email .'<br>';
//用extract对一个数组进行拆分
echo '<hr>';
//把变量转换为数组
$dsn='mysql:host=loacalhost;dbname=emagicdb';
$username = 'root';
$password = 'root';
$linkParams=compact('dsn','username','password');
//compact()函数把多个变量拼装成一个数组,可以传给函数直接作为参数
//注意要写的是'变量名',不用带$
//例如可以在方法call_user_func_array(['demo::connect'],$linkParams);中使用
print_r($linkParams);
echo '<hr>';
//把关联数组转换为索引数组,其实只要拿到值就行,不用取键
$arr=array_values($user);
echo '<pre>'.print_r($arr,true).'</pre>';