Correction status:qualified
Teacher's comments:看一下你的第十六行代码!要把带有默认值的参数放在最后,就比如你这里的$siteName要尽量的放在$lang的后面,也就是参数列表的最后!
今天是第十天上课,朱老师讲的内容有点多,初步讲了表单操作,可以说是对于PHP表单的操作有了概念;继而深入讲解了函数的参数问题,是值得牢记的知识点;数组这块讲了许多,从键值操作到栈队操作,不得不说数组的函数有点多啊。
while(), do~while()
<?php //while循环:入口判断型 //do - while()循环:出口判断型 for( $i = 0; $i <10; $i++) { echo $i < 9 ? $i.',' : $i; } $i = 0;//初始化条件 while($i < 10) { echo $i < 9 ? $i.',' : $i; $i++; } $i = 0;//初始化条件 do{ //do-while至少会执行一次 echo $i < 9 ? $i.',' : $i; }while($i < 10);
点击 "运行实例" 按钮查看在线实例
函数参数与作用域
<?php header('Content-type:text/html;charset=UTF-8'); /** * * */ function hello1($siteName = 'php中文网') { return '欢迎来到'.$siteName.'学习'; } echo hello1(),'<hr>';//这里不传参,函数参数会使用默认值 function hello2($siteName = 'php中文网',$lang) { return '欢迎来到'.$siteName.'学习'.$lang; } echo hello2('php'),'<hr>';//会出错,因为要先给第一个参数传参,然后给第二个参数和传参 //当有可选参数的时候,必须把必选参数往前放,$lang为必须参数,$siteName有默认值,为可选参数 function hello3($lang,$siteName = 'php中文网') { return '欢迎来到'.$siteName.'学习'.$lang; } echo hello3('php'),'<hr>';//这里php就是$lang参数的值,$lang为必选参数 //参数实际就是一个占位符,仅供参考,可以没有 function hello4($a, $b, $c) { //return func_num_args(); //获取参数的数量 // return print_r(func_get_args(),true);//返回参数数组 // return func_get_arg(2);//按索引获取参数值 return (func_get_arg(0) + func_get_arg(1) + func_get_arg(2)); } echo hello4(4,5,6),'<hr>'; $siteName = 'php中文网'; $GLOBALS['siteName1'] = 'php中文网'; // php中只有函数作用域,函数外部声明的变量在函数内部不能直接使用 function hello5 () { global $siteName; // return $GLOBALS['siteName1'];//可以使用全局变量 return $siteName; } echo hello5();
点击 "运行实例" 按钮查看在线实例
数组键值操作与指针
<?php $user = ['id' => 5, 'name' => 'peter', 'gender' => 'male', 'age' => 20 ]; //echo '<pre>',print_r($user,true); // //echo in_array('peter',$user) ? '存在' : '不存在<br>';//精准判断数组中是否存在某个值 // //echo array_key_exists('name',$user) ? '键存在' : '键不存在';//判断某个键是否存在 // //print_r(array_values($user));//以索引的方式返回数组的值组成的数组 //print_r(array_keys($user));//以索引的方式返回数组的键组成的数组 // //echo array_search('peter',$user);//以字符串的方式返回指定值的键; // ////键值对调 //array_flip($user); //指针操作 //四个 //key()返回当前元素的键 //echo key($user); // //echo current($user);//返回当前元素的值 key($user); current($user); next($user);//指针下移 echo key($user); //next($user); // reset($user);//复位 echo key($user); // end($user);//直接将指针移到尾部 echo key($user),'<br>'; //reset($user); print_r(each($user));//返回当前元素的键值的索引与关联的描述 //该元素的键名和键值会被返回带有四个元素的数组中。两个元素(1 和 Value)包含键值,两个元素(0 和 Key)包含键名。 //list();//将索引数组中的值,赋值给一组变量 reset($user); print_r(each($user)); echo '<br>'; list($key, $value) = each($user); echo $key; reset($user); while(list($key, $value) = each($user)) { echo $key,'=>', $value,'<br>'; } $array = ['a','c'=>'klkl','b']; list($a,$b,$c) = $array; echo $b; //list()函数:把数组中的 值 赋给一些变量,注意了,是值(value) //而且,list只对索引数组有效,如果一个数组中含有不是索引为键的元素,那么list()只会对索引元素起作用 //list()中变量必须有一个,数量不能多于数组的索引元素个数
点击 "运行实例" 按钮查看在线实例
数组栈队操作
<meta charset="UTF-8"> <?php header('Content-type=text/html;charset=utf-8'); /** * 使用数组来模拟堆栈和队列操作 */ //栈:后进先出 //队列:先进先出 $user = ['id' => 5, 'name' => 'peter', 'gender' => 'male', 'age' => 20 ]; //array_push($user, '中文网');入栈,尾部数组加入元素 print_r(array_values($user)); echo '<br>'; echo array_pop($user);//出栈,删除最后一个数组 //队 array_unshift($user, 'last');//入队,返回数组数量,插入到数组开头 array_shift($user);//出队,返回出队的值,删除数组的第一个元素 //模拟队列操作:增删只能在两端进行,不允许同一端进行 array_push($user, 'php');//尾部增加 print_r($user); array_shift($user);//头部删除,即出队 array_unshift($user,'html');//头部进队 array_pop($user);//尾部出队
点击 "运行实例" 按钮查看在线实例
课堂总结:数组操作的指针是一个我所没接触过的知识,以及众多的键值操作函数需要慢慢记忆,函数的参数需要记住分必选参数与可选参数,数组的出栈入栈与出队入队操作是很重要的知识点,希望我以后不要将这两者混淆。