博客列表 >0823作业:函数基础和数组

0823作业:函数基础和数组

Samoye
Samoye原创
2018年09月02日 23:27:38684浏览

作业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,是在队列头部插入元素
 */

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议