代码作业:
<?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
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号