代码作业:
实例
<?php /** *表单get请求,会将用户的数据直接添加到浏览器url上;不安全;数据量有限 * post请求,安全 * while循环:入口判断型 * do...while:出口判断型 * */ for($i=0; $i<10; $i++){ echo $i<9 ? $i.',' : $i; } echo '<hr/>'; $j=0; //while while($j<10){ // 初始条件 echo $j<9 ? $j.',' : $j; $j++; //更新条件 } echo '<hr/>'; //do...while() $k = 0; do{ echo $k<9 ? $k.',' : $k; $k++; }while($k<10); //当条件不满足的情况下,while可能出现一次都不执行的情况;do while会执行一次
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php /**函数 * 1. 声明语法 * 2. 参数设置 * 3. 返回值 * 4. 作用域 * * 开发中循环用的基本都是while循环 */ //声明 function hello() {//每个花括号独占一行 return '啦啦啦'; } // 函数内部用return,外部用echo输出function名字 echo hello(); echo '<hr/>'; //带参数 function bonjour($num) { return '啦'. $num .'啦啦'; } echo bonjour('123'); echo '<hr/>'; //参数设定默认值 function bonjour2($num = '123') { return '啦'. $num .'啦啦'; } echo bonjour2('345'); echo '<hr/>'; //多个参数 function bonjour3($num = '123', $lang) { return '啦'. $num .'啦啦' . $lang; } echo bonjour3('345','aaaa'); echo '<hr/>'; //多个参数,传参顺序从前到后,必须先给第一个参数传参(即便第一个参数是函数默认参数),然后才能给与第二个参数 // 或者在函数圆括号内,把非默认参数放到默认参数之前 function bonjour4($lang, $num = '123') { return '啦'. $num .'啦啦' . $lang; } echo bonjour4('aaaa'); echo '<hr/>'; function hello2($a, $b, $c) { // return print_r(func_get_args(), true); // return func_get_arg(0); //获取第一个参数值 // return func_num_args();//获取参数数量 // return ($a + $b + $c); return (func_get_arg(0) + func_get_arg(1) + func_get_arg(2)); } echo hello2(4, 5, 6); echo '<hr/>'; // 参数可以不下,用func_get_arg获取值 function hello3() { // return print_r(func_get_args(), true); // return func_get_arg(0); //获取第一个参数值 // return func_num_args();//获取参数数量 // return ($a + $b + $c); return (func_get_arg(0) + func_get_arg(1) + func_get_arg(2)); } echo hello3(4, 5, 6); echo '<hr/>'; $siteNum = 'php.org'; function hello4() { // global $siteNum; return $GLOBALS['siteNum']; } echo hello4();
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php /** * 数组函数 * 1. 键值操作 * 2. 数组内部指针操作(巡航) */ $user = ['id' => 5, 'name' => 'peter', 'gender' => 'male', 'education' => 'primary school']; echo '<pre>' . print_r($user, true) .'</pre>'; echo '<hr/>'; // in_array() 判断数组中是否存在某个值 echo in_array('peter',$user) ? 'exist' : 'no exist'; echo '<hr/>'; // array_key_exists() 判断某个键名是否存在于数组中 echo array_key_exists('name', $user) ? 'exist' : 'no exist'; echo '<hr/>'; // array_values() 以索引方式返回数组的值 组成的数组 print_r(array_values($user)); echo '<hr/>'; // array_values() 以索引方式返回数组的键 组成的数组 print_r(array_keys($user)); echo '<hr/>'; // array_search() 以字符串的形式返回指定值的键 $key = array_search('peter',$user); echo $key; echo '<hr/>'; echo $user[$key]; echo '<hr/>'; // 键值对调 array_flip print_r(array_flip($user)); echo '<hr/>'; //数组内部操作 echo count($user); echo '<hr/>'; // key() 返回当前元素的键 echo key($user); echo '<hr/>'; //current 返回当前元素的值 echo current($user); echo '<hr/>'; // next() 指针下移,指向下一个 next($user); echo key($user); echo '<hr/>'; echo current($user); echo '<hr/>'; next($user); echo key($user); echo '<hr/>'; echo current($user); echo '<hr/>'; // 重置,复位指针 reset reset($user); echo key($user); echo '<hr/>'; echo current($user); echo '<hr/>'; // 将指针移到尾部,最后一个 end($user); echo key($user); echo '<hr/>'; echo current($user); echo '<hr/>'; reset($user); // each() 返回当前元素的键值索引与关联描述,并自动下移指针 print_r(each($user)); //id 5 echo '<hr/>'; // list() 将索引数组中的值,赋值给变量 list($key, $value) = each($user); //id 5 //$key = 'name'; //$value = 'peter'; echo $key . ' and ' . $value; echo '<hr/>'; reset($user); // while list each 遍历数组 each会遍历函数,然后自动下移指针,遍历完毕自动返回false while(list($key, $value) = each($user)){ echo $key . '=>' . $value . '<br/>'; };
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php /** * 使用数组模拟 堆栈,队列 * 栈 后进先出 从羽毛球桶里面取羽毛球 * 队列 先进先出 排队 */ $user = ['id' => 5, 'name' => 'peter', 'gender' => 'male', 'education' => 'primary school']; echo '<pre>' . print_r($user, true) .'</pre>'; echo '<hr/>'; echo '当前长度:' . count($user); echo '<hr/>'; //入栈 array_push返回新数组的长度 array_push($user, 'php'); echo '当前长度:' . count($user); echo '<hr/>'; echo '<pre>' . print_r($user, true) .'</pre>'; echo '<hr/>'; //出栈 顺序,从尾到头 echo array_pop($user); echo '<hr/>'; echo array_pop($user); echo '<hr/>'; echo '<pre>' . print_r($user, true) .'</pre>'; echo '<hr/>'; reset($user); echo '<pre>' . print_r($user, true) .'</pre>'; //reset无效 echo '<hr/>'; // 队列操作 shift(),unshift() echo array_unshift($user, 'php.net'); // 数据从头部进来 echo '<pre>' . print_r($user, true) .'</pre>'; echo array_shift($user); // 直接返回值;数据从头部出去 echo '<pre>' . print_r($user, true) .'</pre>'; echo '<hr/>'; // 模拟队列:增删只能从两端进行,不能从同一端进行 array_push($user, 'css'); //入队,尾部入队 echo '<pre>' . print_r($user, true) .'</pre>'; array_shift($user); //头部删除 echo '<pre>' . print_r($user, true) .'</pre>'; echo '<hr/>'; array_unshift($user, 'html'); //头部入队 echo '<pre>' . print_r($user, true) .'</pre>'; array_pop($user); //尾部出队 echo '<pre>' . print_r($user, true) .'</pre>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
结果图:
总结:
首先写了表单提交get和post两种形式,get请求会将用户的数据直接显示在浏览器的url上,不安全,而且get请求的数据量很有限;post请求就不会有这些情况,因而很安全。
学习了两种循环,分别是while和do...while,while是入口判断型循环,在函数入口处进行判断,而do....while是出口判断型函数,在函数尾部进行判断。因而如果遇到不符合条件的判断,while不会执行,而do...while会进行一次执行。
函数学习,首先是函数的关键字function,之后声明这个函数,相当于函数名字,然后两个圆括号,其次花括号,花括号独占一行。函数内部用return,外部用echo外加函数名字进行输出。拥有多个参数的函数,传参顺序从前到后,必须先给第一个参数传参(即便第一个参数是函数默认参数),然后才能给与第二个参数;或者在函数圆括号内,把非默认参数放到默认参数之前。
最后学了数组,键值/指针/队列/堆栈的操作。
键值/指针主要就几个关键字的操作进行获取数组中的键或者值。而队列/堆栈就记住,增删只能从两端进行,不能从同一端进行,要么头部入列,尾部出列;要么尾部入队,头部删除;关键字主要也就四个,push/pop/shift/unshift