Blogger Information
Blog 21
fans 0
comment 0
visits 18661
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
循环语句\函数的参数与作用域\数组的键值\指针\栈与队列—2018年8月24日02时18分
耗子的博客
Original
985 people have browsed it

本节课:重点讲解了循环语句,函数参数,数组,指针,栈队列

内容较多,更多的需要去记住;

实例:循环语句

<meta charset="UTF-8">

<?php

echo '<h2 style="color: green">1. 编程: 实例演示while(),do~while()</h2>';
echo '<hr>';
echo'<h4>a、for循环使用:入口判断型</h4>';
for ($i=1;$i<=10;$i++)
{
 echo '这是你今天跑的第'. $i. '圈','<br>';
}

for ($i=0;$i<10;$i++)
{
    //echo $i.',';  //在每个$i后面都有,

    echo $i<9 ? $i.',' : $i;  //使用三元运算符,如果<9则显示,
}





echo '<hr>';
echo'<h4>b、while()循环使用:入口判断型,如果条件不满足一次都不执行</h4>';
$num=1;//初始化条件
while ($num<=10)
{
    echo '当前条件满足<=10才执行,值为'.$num.'<br>'; //显示条件
    $num++;  //更新条件
}




echo '<hr>';
echo'<h4>c、do while()循环使用:出口判断型,先执行一次再判断</h4>';
$num1=1;
do
{
    echo '不过条件是否满足,先执行一次再判断,'.$num1.'<br>'; //显示条件
    $num1++;  //更新条件
}
while ($num1<0);

运行实例 »

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

实例:函数参数

<meta charset="UTF-8">
<?php


echo '<h2 style="color: green">2. 编程: 函数的参数与作用域</h2>';
echo '<hr>';
echo'<h4>a、声明</h4>';


function test()
{
    return '一:无传参;按名称调用,名称后面跟一对()';
}
echo test();
echo '<br>';


echo '<br>';
function test1($name)
{
    return '二:'.$name.';调用时需要传入参数';
}
echo test1('有一个参数');
echo '<br>';
echo '<br>';


function test2($name='默认有参数')
{
    return '三:'.$name.';调用时如果不传入参数自动默认,如果有传入参数,按传入参数';
}
echo test2();
echo '<br>';
echo test2('手工传参数');
echo '<br>';



echo '<br>';
function test3($domain,$name='PHP中文网')
{
    return '四:'.$name.'的域名是'.$domain.'(多个参数时且有可选传参,必须将把必选参数放前面)';
}
echo test3('www.php.cn');
echo '<br>';
echo test3('www.php.cn','可选参数手工传参, PHP中文网 ');
echo '<br>';


echo '<br>';
function test4($num1,$num2,$num3,$num4)
{
    return '五:传入的4个参数的值合计是:'.($num1+$num2+$num3+$num4);
}
echo test4(1120,2110,32102,99);
echo '<br>';


echo '<br>';
function test5($num1,$num2,$num3,$num4)
{
    return '六:使用func_num_args(),获取参数的数量是:'.func_num_args().'个';//获取参数的数量
}
echo test5(1120,2110,32102,99);
echo '<br>';


echo '<br>';
function test6($num1,$num2,$num3,$num4)
{
    return '七:使用func_get_arg(),获取第2个参数的值是:'.func_get_arg(1);//获取指定参数的值
}
echo test6(1120,2110,32102,99);
echo '<br>';


echo '<br>';
function test7($num1,$num2,$num3,$num4)
{
    return '八:使用func_get_args(),获取所有参数的数据返回数组:'.print_r(func_get_args(),true).'个';//获取所有参数的数据返回数组
}
echo test7(1120,2110,32102,99);
echo '<br>';


echo '<br>';
function test8()
{
    return '九:函数无参数,传递4个参数值,通过func_get_arg()进行取参数,合计结果为:'.(func_get_arg(0)+func_get_arg(1)+func_get_arg(2)+func_get_arg(3));
}
echo test8(1120,2110,32102,99);
echo '<br>';


echo '<hr>';
echo'<h4>b、作用域</h4>';
echo '<br>';

$name="我是外部变量PHP中文网,通过函数内使用global 变量名称,才能在函数内调用";
function test9()
{
    global $name;
    return $name;

    //也可以使用return $GLOBALS['name'];进行调用
}
echo test9();
echo '<br>';



echo '<br>';
$name2="我是外部变量,通过函数内也可以使用return \$GLOBALS['name'];进行内部调用";
function test10()
{


    return $GLOBALS['name2'];
}
echo test10();
echo '<br>';

运行实例 »

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

实例:数组常用键值操作

<meta charset="UTF-8">
<?php

echo '<h2 style="color: green">3. 编程: 数组常用的键值操作</h2>';
echo '<hr>';
echo'<h4>a、数组的创建和输出</h4>';

$student=['id'=>79052,'name'=>'熊成浩','email'=>'996114@qq.com','sex'=>'男'];

echo '<pre>',print_r($student,true),'</pre>';

echo '<br>';
echo'<h4>b、in_array()判断数组中是否存在某个值</h4>';
echo in_array('熊成浩',$student)? '数组中存在值为熊成浩的数据':'不存在';


echo '<br>';
echo'<h4>c、array_key_exists()判断键名是否存在于数组中</h4>';
echo array_key_exists('sex',$student)? '数组中存在键为sex的数据':'不存在';


echo '<br>';
echo'<h4>d、array_values()以索引的方式返回数组的值</h4>';
echo '以索引的方式返加$student的值<br><pre>'.print_r(array_values($student),true).'</pre>';


echo '<br>';
echo'<h4>e、array_search()以字符串的方式返回指定值的键</h4>';
echo '以字符串的方式返回指定值的键:'.array_search('熊成浩',$student);


echo '<br>';
echo'<h4>f、array_flip() 键值对调</h4>';
echo '<pre>'.print_r(array_flip($student),true).'</pre>';


echo '<br>';
echo'<h4>g、array_flip() 键值对调</h4>';
echo '<pre>'.print_r(array_flip($student),true).'</pre>';

运行实例 »

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

实例:数组指针

<meta charset="UTF-8">
<?php

echo '<h2 style="color: green">3. 编程: 数组内部的指针操作</h2>';
echo '<hr>';

$student=['id'=>79052,'name'=>'熊成浩','email'=>'996114@qq.com','sex'=>'男'];
echo '<pre>',print_r($student,true),'</pre>';

echo'<h4>a、当前数组中的元素个数 count()</h4>';
echo '当前数组中的元素个数:'.count($student).'个';

echo '<br>';
echo'<h4>b、将指针指向第一个元素的键 key()</h4>';
echo '当前数组中的第一个元素的键是:'.key($student);


echo '<br>';
echo'<h4>c、将指针指向第一个元素的值 current()</h4>';
echo '当前数组中的第一个元素的值是:'.current($student);


echo '<br>';
echo'<h4>d、指针下移向第二个元素的键或值 next()</h4>';
next($student);
echo '指针下移后当前元素的键是:'.key($student).'<br>';
echo '指针下移后当前元素的值是:'.current($student).'<br>';
echo '<br>';
next($student);
echo '指针下移后当前元素的键是:'.key($student).'<br>';
echo '指针下移后当前元素的值是:'.current($student);


echo '<br>';
echo'<h4>e、将指针指复位 reset()</h4>';
reset($student);
echo '复位指针后当前元素的键是:'.key($student).'<br>';
echo '复位指针后当前元素的值是:'.current($student);


echo '<br>';
echo'<h4>f、将指针指移到最后一个 end()</h4>';
end($student);
echo '将指针移到最后一个元素的键是:'.key($student).'<br>';
echo '将指针移到最后一个元素的值是:'.current($student);


echo '<br>';
echo'<h4>g、返回当前元素的键值的索引与关键的描述,并自动下移 each()</h4>';
reset($student);
echo '<pre>'.print_r(each($student),true).'</pre>';


echo'<h4>h、将索引数组中的值赋值组一组变量,each()  list()结合使用</h4>';
list($key,$value)=each($student);
echo 'list中的$key为:'.$key.'  $value为:'.$value;


echo'<h4>i、使用while遍历循环 list()的键值</h4>';
reset($student);
while (list($key,$value)=each($student)) //指针第一个元素开始查询key,value在student的直到最后一个
{
    echo 'list中的$key为:'.$key.'  $value为:'.$value.'<br>';
}

运行实例 »

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

实例:栈与队列

<meta charset="UTF-8">
<?php

echo '<h2 style="color: green">4. 编程: 数组模拟栈与队列操作</h2>';
echo '<hr>';

echo'<h4>a、入栈 array_push() 从尾部入队   返回新数组的长度=count(数组)</h4>';

$student=['id'=>79052,'name'=>'熊成浩','email'=>'996114@qq.com','sex'=>'男'];
echo '<pre>',print_r($student,true),'</pre>';
echo '修改前数组的长度:',count($student);
echo '<br>';
array_push($student,'广东省东莞市');

echo '<pre>',print_r($student,true),'</pre>';
echo '修改后数组的长度:',count($student);



echo'<h4>b、出栈 array_pop() 返回出栈的数据,默认是从尾部往外出</h4>';

echo '第一次出栈的数据:'.array_pop($student);
echo '<br>';
echo '第二次出栈的数据:'.array_pop($student);
echo '<br>';
echo '第三次出栈的数据:'.array_pop($student);
echo '<br>';
echo '<pre>',print_r($student,true),'</pre>';


echo'<h4>c、入队 array_unshift() 从头部入队</h4>';
array_unshift($student,'PHP中文网');
echo '<pre>',print_r($student,true),'</pre>';
array_unshift($student,'20180823');
echo '<pre>',print_r($student,true),'</pre>';



echo'<h4>d、出队 array_shift() 从头部往外出</h4>';
array_shift($student);
echo '<pre>',print_r($student,true),'</pre>';
array_shift($student);
echo '<pre>',print_r($student,true),'</pre>';



echo'<h4>e、模拟队列操作:增删只能在两端进行(从尾部入队 头部出队)</h4>';
array_push($student,'羽毛球');
array_push($student,'游泳');

echo '<pre>',print_r($student,true),'</pre>';
array_shift($student);
echo '<pre>',print_r($student,true),'</pre>';



echo'<h4>f、模拟队列操作:增删只能在两端进行(从头部入队 尾部出队)</h4>';
array_unshift($student,'乒乓球');
array_unshift($student,'篮球');

echo '<pre>',print_r($student,true),'</pre>';
array_pop($student);
echo '<pre>',print_r($student,true),'</pre>';

运行实例 »

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



总结:本章节内容多,但容易理解,重要的是记住

循环语句:

while(): 入口判断型:如果条件不满足一次都不执行

do ~ while(): 出口判断型:不管条件是否满足先执行一次再判断

函数参数:

无传参;按名称调用,名称后面跟一对();

有默认参数调用时如果不传入参数自动默认,如果有传入参数,按传入参数;

多个参数时且有可选传参,必须将把必选参数放前面

作用域:

通过函数内也可以使用return $GLOBALS[变量名称]进行内部调用

数组键值:

in_array()判断数组中是否存在某个值

array_key_exists()判断键名是否存在于数组中

array_values()以索引的方式返回数组的值

array_search()以字符串的方式返回指定值的键

array_flip() 键值对调

array_flip() 键值对调

指针操作:

将指针指向第一个元素的键 key()

指针下移向第二个元素的键或值 next()

将指针指复位 reset()

将指针指移到最后一个 end()

返回当前元素的键值的索引与关键的描述,并自动下移 each()

将索引数组中的值赋值组一组变量,each()  list()结合使用

使用while遍历循环 list()的键值

栈与队列:

入栈 array_push() 从尾部入队

出栈 array_pop()  返回出栈的数据,默认是从尾部往外出

入队 array_unshift() 从头部入队

出队 array_shift() 从头部往外出

队列操作:增删只能在两端进行(从尾部入队 头部出队)或者(从头部入队 尾部出队)


Correction status:qualified

Teacher's comments:
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
Author's latest blog post