Blogger Information
Blog 48
fans 0
comment 0
visits 40785
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
请求方法,函数参数与作用域及数组的键值操作和栈队操作学习—2018年23日22时00分
小星的博客
Original
730 people have browsed it

今天是第十天上课,朱老师讲的内容有点多,初步讲了表单操作,可以说是对于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);//尾部出队

    运行实例 »

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

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


Correction status:qualified

Teacher's comments:看一下你的第十六行代码!要把带有默认值的参数放在最后,就比如你这里的$siteName要尽量的放在$lang的后面,也就是参数列表的最后!
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments