作业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,是在队列头部插入元素 */
运行实例 »
点击 "运行实例" 按钮查看在线实例