批改状态:未批改
老师批语:
作业1:do while 和while的区别
<?php
/**
while 和 do while 循环是常用的循环语句:
* while:入口型判断循环
* 语法:while(条件语句){循环体}
* do while :出口判断型循环语句
* 语法:do {循环体}while(条件);
* 区别:while条件不成立就不执行,do-while条件不成立也要执行一次;
*/
//举个栗子:
$i=1;
$sum=0;
while($i<=100){
$sum+=$i;
$i++;
}
echo $sum;
echo "<hr>";
$a=1;
$b=0;
do{
$b+=$a;
$a++;
}while($a<101);
echo $b;点击 "运行实例" 按钮查看在线实例
作业2:函数的参数和作用域
<?php
/**
*1.函数的语法结构:
* functiom 函数名 (参数1,参数2,...)
* {
函数体/运算语句
* }
* 函数的名,命名规则:
* 1.函数名尽量能够提示它要实现的功能;
* 2.函数的名称以字母和下划线开头
* 3.函数名不区分大小写;
* 4.函数可以被多次调用---代码的重用性;
* 函数的参数:
* 参数分可以形式参数和实际参数;
* 参数的默认值;
* 有可选参数和必须参数同时都有,必选参数放在可选参数前;
* 匿名函数:没有名字的函数,保存在变量中;
*/
//举个栗子:
//求两个数的和 带有参数的函数
function add ($num1,$num2) // 有两个形参
{
$sum=$num2+$num1;
return $sum;
}
add(3,8); //调用函数,并传递两个实参,传值;
function shi ($name,$sex,$age='未知',$add='不详') //带有默认参数的函数
{
echo "你好:{$name}<br>";
echo "性别:{$sex}<br>";
echo "年龄:{$age}<br>";
echo "住址:{$add}<br>";
}
shi(小师太,女);
echo "<hr>";
//匿名函数
$str=function ($args)
{
echo $args;
};//匿名函数,这里要有个分号;
$str('夜太美,你太温柔!');
echo "<hr>";
//参数个数不确定的函数
function fun()
{
$n=func_num_args();//获取传递参数的个数;
$array=func_get_args();//获得传递的参数,并转换成数组
$sum=0;
for($i=0;$i<$n;$i++){
$sum+=$array[$i];
}
echo '参数的和是:'.$sum.'<hr>';
}
fun(10,20,30);
echo "<hr>";
//函数的作用域和变量的作用域类似;点击 "运行实例" 按钮查看在线实例
作业3:数组常用的键值和指针操作
<?php
/**
*1.数组常用的键值操作
* in_array(valve,数组)
* array_key_exists(key ,数组)
* array_values();以索引方式返回数组的所有值
* array_keys():返回数组的所有键名;
* array_search():以字符串的方式返回指定值的键名,失败返回false;
* array_flip(数组):键值对调
* count():获取数组的元素数量/长度
* array_reverse(array);数组翻转;
* array_uniquer():去重复
*
*
*******************
* $array=range('a','z') 生成一个指定范围的数组
* array_merge() 合并数组
* array_rand(数组,数字),随机取出’数字‘个元素
* shuffle(array):打乱数组
* array_slice();
* array_splice();
* array_chunk();
* array_pad();
*
* 2.数组的指针操作
* key(数组):返回当前数组指针指向元素的键名
* current():返回当前数组指针指向元素的值;
* next(数组);指针下移以为;
* reset(数组);重置指针;
* end(数组):指针移到尾部;
* each():返回当前元素的键值的索引与关联的描述//PHP7 淘汰
* list():将索引数组中的值,付给一组变量;
*
********************
* array_combine(键数组,值数组)创建一个数组,用键数组的值做键名,值数组的值做值
* array_map();
*/
//举个栗子:
$stu = array('学号'=>'20180630','姓名'=>'李白','性别'=>'男','年龄'=>'21','专业'=>'汉语文学');
var_dump(in_array('李白',$stu));
echo "<hr>";
var_dump(array_key_exists('年龄',$stu));
echo "<hr>";
//array_key_exists('学号',$stu)?'find':'not find'; 那里错了,不显示?
print_r(array_values($stu));
echo "<hr>";
print_r(array_keys($stu));
echo "<hr>";
echo array_search('李白',$stu),'<br>'; //输出:姓名
$num=count($stu);
echo $num,'<hr>';
print_r(array_flip($stu));//键值对调
echo "<hr>";
//指针操作
$name = array('peter','joe','jimmy','core','albert');
echo key($name).'<hr>';
next($name);//让指针下移一位;
echo key($stu).'<hr>';
echo current($name),'<hr>';
reset($name);
echo current($name),'<hr>';
print_r(each($name));
echo "<hr>";
print_r(each($name));//输出了4个,2对键值关系
reset($name);
echo "<hr>";
while ($s=each($name)){
list($key,$value)=$s;
echo $key,'-',$value,'<br>';
}
echo "<hr>";
// 补充:数组的遍历
// 1.for 遍历索引数组
$name1 = ['peter','joe','jimmy','core','albert'];
$str='';
for($i=0;$i<count($name1);$i++){
$str.=$name[$i].','; //利用.= 赋值给字符串str,并添加逗号
}
echo rtrim($str,',');//rtrim 删除字符串的两边的逗号
echo "<hr>";
// 2. foreach 遍历关联数组
$stu1 = ['学号'=>'20180630','姓名'=>'李白','性别'=>'男','年龄'=>'21','专业'=>'汉语文学'];
foreach($stu1 as $value){
echo $value;
}
foreach($stu1 as $key=>$value){
echo $key. '==>'.$value.'<br>';
}
// print_r var_dump() var_export;这三个输出语句的区别和作用点击 "运行实例" 按钮查看在线实例
作业4:数组模拟栈和队列操作
<?php
/**
用数组模拟栈和队列操作;
* 1.栈是后进先出 一端进出;
2.队列是先进先出,2端进出;
*/
//举个栗子
//模拟栈
$shi = array('李商隐');
array_push($shi,'李白','杜甫');//入栈2个
array_push($shi,'白居易');
print_r($shi);
echo '<hr>';
array_pop($shi);//出栈 白居易
array_pop($shi); //出栈杜甫
print_r($shi);
echo '<hr>';
//模拟队列操作
$name = array('peter','core','jimmy');
echo array_shift($name),'<hr >';//删除并返回删除的值,从头部开始
echo array_shift($name),'<hr >';
echo array_unshift($name,'tom'),'<hr>';
echo array_unshift($name,'albert'),'<hr>';
print_r($name);
/*
* 总结:
* 模拟队列操作的方法:
* push压栈,相当于在队列尾部增加元素
* pop出栈,相当于在队列尾部删除元素
* shift,是队列删除头部元素
* unshift,是在队列头部插入元素
*/点击 "运行实例" 按钮查看在线实例
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号