本次作业包含while与do while循环语句的理解运用、函数的参数及作用域(如何引用全局变量)、数组常用的键值操作及指针操作实现方法、还有如何用数组模拟栈与队列操作(4种进出方法,最后总结)
作业一while与do while循环语句实例
<?php /** * Created by PhpStorm. * User: suyh93 * Date: 2018/8/26 * Time: 14:16 */ echo '<h1>while循环语句与do while循环语句</h1><hr>'; echo '<h3>while循环:将重复执行代码块直到制定条件不成立</h3>'; $money = 1000; while ($money < 1008) { echo $money < 1007 ? $money.',' : $money; $money++; } echo '<hr><h3>do while循环:语句最少会执行一次代码,然后检查条件,只要条件成立就会重复进行循环</h3>'; $money1 = 1000; do { echo $money1; $money1++; } while ($money1 <1000); echo '<br>'; $money2 = 1000; do { echo $money2 < 1007 ? $money2.',' : $money2; $money2++; } while ($money2 < 1008); echo '<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
本地运行效果图:
作业二函数的参数与作用域实例
<?php /** * Created by PhpStorm. * User: suyh93 * Date: 2018/8/26 * Time: 14:47 */ echo '<h1>函数的参数与作用域</h1>'; echo '<hr><h3>函数的参数</h3>'; echo '<hr><h6>函数的基本语法演示:不带参数</h6>'; function money() { return '钱不是万能的,但没有钱是万万不能的。'; } echo money(); echo '<hr><h6>函数的基本语法演示:一个参数,在函数名后的括号内注明参数变量值</h6>'; function money1($a) { return $a.',但没有钱是万万不能的。'; } echo money1('钱不是万能的'),'<br>'; function money2($a = '钱不是万能的') { return $a.',但没有钱是万万不能的。'; } echo money2(); echo '<hr><h6>函数的基本语法演示:两个或多个参数,一定要把必选参数放到函数名括号内最前面</h6>'; function money3($a,$b = '钱不是万能的') { return $a.',但没有钱是万万不能的。'; } echo money3('钱是万能的','钱不是万能的'),'<br>'; function money4($a = '钱不是万能的',$b = '钱是万能的') { return $a.',但没有钱是万万不能的。'.$b; } echo money4(),'<br>'; echo '<hr><h6>函数的基本语法演示:多个参数的调取方法(语法func_get_arg(顺序))</h6>'; function money5() { return func_get_arg(0) + func_get_arg(1) + func_get_arg(2); } echo money5(2,4,6); echo '<hr><h3>函数的作用域———使用$GLOBALS调用全局变量</h3>'; $money = 1000;//此变量非函数内变量,不可以直接使用,每个函数都有自己的作用域,如果要使用此变量需用超级全局变量$GLOBALS调用 function money6() { return '身上只剩下'.$GLOBALS['money'].'块钱了'; } echo money6();
运行实例 »
点击 "运行实例" 按钮查看在线实例
本地运行查看截图:
作业三数组常用键值操作与指针操作实例
<?php /** * Created by PhpStorm. * User: suyh93 * Date: 2018/8/26 * Time: 15:55 */ echo '<h1>数组常用的键值操作与指针操作</h1>'; echo '<hr><h3>常用键值操作--创建原始数组</h3>'; $company = ['name' => 'suyh一点蓝','number' => '58人','time' => '2018','capital' => '1000000元人民币']; echo '<pre>',print_r($company,true); echo '<hr><h6>1判断数组中是否存在于某个值(使用函数in_array(值,数组))</h6>'; echo in_array('2018',$company) ? '公司2018成立' : '公司不是2018成立','<br>'; echo in_array('68人',$company) ? '公司有68人' : '公司没有68人'; echo '<hr><h6>1判断数组中是否存在于某个健名(使用函数array_key_exists(值,数组))</h6>'; echo array_key_exists('name',$company) ? '公司名称确定了' : '公司还没有选名','<br>'; echo array_key_exists('capital',$company) ? '能查询到公司资产' : '查不到公司资产'; echo '<hr><h6>以索引方式返回 由返回原数组的值组成的数组(使用函数array_values(数组)</h6>'; echo '<pre>',print_r(array_values($company),true); echo '<hr><h6>以索引方式返回 由返回原数组的键组成的数组(使用函数array_keys(数组)</h6>'; echo '<pre>',print_r(array_keys($company),true); echo '<hr><h6>以 字符串 方式返回 指定的值的键 (使用函数array_search(值,数组)</h6>'; echo array_search('suyh一点蓝',$company),'<br>';//返回name echo array_search('1000000元人民币',$company);//返回capital echo '<hr><h6>键值对调(使用函数array_flip(数组)</h6>'; echo '<pre>',print_r(array_flip($company),true); echo '<hr><h3>数组常用指针操作</h3>'; echo '<hr><h6>查询数组内有多少元素count(数组)</h6>'; echo '该数组共有',count($company),'个元素'; echo '<hr><h6>返回当前元素的值(用current(数组))</h6>'; echo '当前元素值',current($company);//返回到suyh一点蓝 echo '<hr><h6>返回当前元素的键(用key(数组))</h6>'; echo '当前元素键',key($company);//返回到name echo '<hr><h6>指针下移(用next(数组))</h6>'; echo '下移到',next($company),'<br>';//移到下一个元素58人 echo '当前元素值',current($company),'<br>';//当前元素值 58人 echo '当前元素键',key($company),'<br>';//当前元素键 number echo '下移到',next($company),'<br>';//移到下一个元素2018 echo '当前元素值',current($company),'<br>';//当前元素值 2018年 echo '当前元素键',key($company),'<br>';//当前元素键 time echo '<hr><h6>跳至尾部元素(用end(数组))</h6>'; echo '跳至尾部元素',end($company);//转到尾部1000000元人民币 echo '<hr><h6>复位元素(用reset(数组))</h6>'; echo '回到第一个元素',reset($company);//回到第一个元素suyh一点蓝 echo '<hr><h6>each(数组)返回当前元素的索引的键值的索引与关联描述,并自动下移,list()可以将索引数组中的值,赋值给一组变量</h6>'; echo '返回当前元素键值的索引与关联描述',print_r(each($company),true),'<br>';//打印出的当前元素的键值索引及关联描述 list($key,$value) = each($company);//each()自动下移,所以赋值变量为当前元素下一个元素的键值 echo $key,'=>',$value; echo '<hr><h6>用while循环,list(),each()遍历数组</h6>'; reset($company);//复位 while (list($key,$value) = each($company)) { echo $key,'=>',$value,'<br>'; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
本地查看效果图:
作业4数组模拟栈与队列操作实例
<?php /** * Created by PhpStorm. * User: suyh93 * Date: 2018/8/26 * Time: 21:09 */ echo '<h1>数组模拟栈与队列操作</h1>'; echo '<hr><h3>创建数组</h3>'; $company = ['name' => 'suyh一点蓝','number' => '58人','time' => '2018','capital' => '1000000元人民币']; echo '<pre>',print_r($company,true); echo '<hr><h6>模拟进栈操作(array_push(数组,进栈新元素)),进栈顺序为数组元素尾部进入</h6>'; echo '完成进栈操作返回值为新数组元素数量等同count()',array_push($company,'news'),'=',count($company),'<br>';//完成进栈操作但返回值为新数组元素数量等同count() echo '最新数组<pre>',print_r($company,true);//打印新数组 array_push($company,'product');//继续入栈 echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '<hr><h6>模拟出栈操作(array_pop(数组)),其出栈顺序为倒序出栈,由数组元素尾部倒序出栈</h6>'; echo '返回值为出栈元素的值',array_pop($company),'<br>'; echo '返回值为出栈元素的值',array_pop($company),'<br>'; echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '返回值为出栈元素的值',array_pop($company),'<br>'; echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '<hr><h6>模拟入队操作(array_unshift(数组,进队新元素)),属性与array_push()类似,进队顺序为由数组元素头部进入依序后排</h6>'; echo '完成进队操作返回值为新数组元素数量等同count()',array_unshift($company,'product'),'=',count($company),'<br>';//完成进队操作但返回值为新数组元素数量等同count() echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '完成进队操作返回值为新数组元素数量等同count()',array_unshift($company,'news'),'=',count($company),'<br>';//完成进队操作但返回值为新数组元素数量等同count() echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '<hr><h6>模拟出队操作(array_shift(数组)),属性与array_pop()类似为删除队列,出队顺序为由元素头部顺序出队</h6>'; echo '返回值为出队元素的值',array_shift($company),'<br>'; echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '返回值为出队元素的值',array_shift($company),'<br>'; echo '返回值为出队元素的值',array_shift($company),'<br>'; echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '<hr><h4>使用以上四种用法模拟队列操作:头部进队尾部出队/尾部进队头部出队</h4>'; echo '<h6>头部进队尾部出队</h6>'; echo '由头部顺序进三个元素,依序后排,显示总元素为',array_unshift($company,'php中文网','product','news'); echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '尾部出队为删除数组值',array_pop($company),'<br>'; echo '尾部出队为删除数组值',array_pop($company),'<br>'; echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '<h6>尾部进队头部出队</h6>'; echo '由尾部顺序进三个元素,依序后排,显示总元素为',array_push($company,'2018','68','phone'); echo '最新数组<pre>',print_r($company,true);//打印新数组 echo '删除头部出队元素的值',array_shift($company),'<br>'; echo '删除头部出队元素的值',array_shift($company),'<br>'; echo '最新数组<pre>',print_r($company,true);//打印新数组
运行实例 »
点击 "运行实例" 按钮查看在线实例
本地查看效果图:
总结:
1while与do while 循环语句的区分,do while不论条件如何让会先执行一次初始值
2函数的参数如果是必要参数一定要位于函数名后括号内前方,多个参数获取对应值使用func_get_arg(对应索引位置),函数内引用全局变量使用$GLOBALS[变量名]
3常见键值操作函数in_array(值,数组)/判断值是否在数组中;array_key_exists(键名,数组)/判断键名是否在数组中;array_values(数组)/以数组中的值以索引方式重组的新数组;array_keys(数组)/以以数组中的健名以索引方式重组的新数组;
array_search(值,数组)/返回一个字符串,该字符串是指定值的键名;array_flip(数组)/键值对调;
4常见的数组内部指针操作方法:key(数组)/返回当前元素键;current(数组)/返回当前元素值;next(数组)/下移一个元素;end(数组)/返回尾部元素;reset(数组)/复位重回数组第一个元素;each(数组)/返回当前元素的键值的索引和关联的描述,并自动下移一个元素,可以将each(数组)中的值赋值给list(设定变量)中的一组变量,通过while可以实现遍历该数组
5数组模拟栈与队列操作4种用法:array_push(数组,新增元素)/从原数组元素尾部顺序入栈,直接输出为新数组的元素数量=count(数组);array_pop(数组)/从数组尾部倒序出栈;array_unshift(数组,新增元素)/从原数组头部依进入顺序从前往后进队;array_shift(数组)/按照进队顺序出队