登录  /  注册
博主信息
博文 48
粉丝 0
评论 0
访问量 39216
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
请求方法,函数参数与作用域及数组的键值操作和栈队操作学习—2018年23日22时00分
小星的博客
原创
700人浏览过

今天是第十天上课,朱老师讲的内容有点多,初步讲了表单操作,可以说是对于PHP表单的操作有了概念;继而深入讲解了函数的参数问题,是值得牢记的知识点;数组这块讲了许多,从键值操作到栈队操作,不得不说数组的函数有点多啊。

  1. 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);

    运行实例 »

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


  2. 函数参数与作用域

    实例

    <?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();

    运行实例 »

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


  3. 数组键值操作与指针

    实例

    <?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()中变量必须有一个,数量不能多于数组的索引元素个数

    运行实例 »

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

  4. 数组栈队操作

    实例

    <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);//尾部出队

    运行实例 »

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

课堂总结:数组操作的指针是一个我所没接触过的知识,以及众多的键值操作函数需要慢慢记忆,函数的参数需要记住分必选参数与可选参数,数组的出栈入栈与出队入队操作是很重要的知识点,希望我以后不要将这两者混淆。


批改状态:合格

老师批语:看一下你的第十六行代码!要把带有默认值的参数放在最后,就比如你这里的$siteName要尽量的放在$lang的后面,也就是参数列表的最后!
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学