批改状态:合格
老师批语:看一下你的第十六行代码!要把带有默认值的参数放在最后,就比如你这里的$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);//尾部出队点击 "运行实例" 按钮查看在线实例
课堂总结:数组操作的指针是一个我所没接触过的知识,以及众多的键值操作函数需要慢慢记忆,函数的参数需要记住分必选参数与可选参数,数组的出栈入栈与出队入队操作是很重要的知识点,希望我以后不要将这两者混淆。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号