博客列表 >php的学习第三课(流程控制实战与常用数组函数一)-2018年8月26日13点10分

php的学习第三课(流程控制实战与常用数组函数一)-2018年8月26日13点10分

victor的博客
victor的博客原创
2018年08月26日 16:07:35767浏览

代码作业:

实例

<?php
/**
 *表单get请求,会将用户的数据直接添加到浏览器url上;不安全;数据量有限
 * post请求,安全
 * while循环:入口判断型
 * do...while:出口判断型
 *
 */

for($i=0; $i<10; $i++){
    echo $i<9 ? $i.',' : $i;
}
echo '<hr/>';

$j=0;
//while
while($j<10){

//    初始条件
    echo $j<9 ? $j.',' : $j;
    $j++;
    //更新条件
}

echo '<hr/>';

//do...while()
$k = 0;
do{
    echo $k<9 ? $k.',' : $k;
    $k++;
}while($k<10);

//当条件不满足的情况下,while可能出现一次都不执行的情况;do while会执行一次

运行实例 »

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

实例

<?php
/**函数
 * 1. 声明语法
 * 2. 参数设置
 * 3. 返回值
 * 4. 作用域
 *
 * 开发中循环用的基本都是while循环
 */

//声明
function hello()
{//每个花括号独占一行
    return '啦啦啦';
}
// 函数内部用return,外部用echo输出function名字
echo hello();

echo '<hr/>';

//带参数
function bonjour($num)
{
    return '啦'. $num .'啦啦';
}

echo  bonjour('123');

echo '<hr/>';

//参数设定默认值
function bonjour2($num = '123')
{
    return '啦'. $num .'啦啦';
}

echo  bonjour2('345');

echo '<hr/>';

//多个参数
function bonjour3($num = '123', $lang)
{
    return '啦'. $num .'啦啦' . $lang;
}

echo  bonjour3('345','aaaa');

echo '<hr/>';
//多个参数,传参顺序从前到后,必须先给第一个参数传参(即便第一个参数是函数默认参数),然后才能给与第二个参数
// 或者在函数圆括号内,把非默认参数放到默认参数之前
function bonjour4($lang, $num = '123')
{
    return '啦'. $num .'啦啦' . $lang;
}

echo  bonjour4('aaaa');

echo '<hr/>';


function hello2($a, $b, $c)
{
//    return print_r(func_get_args(), true);
//    return func_get_arg(0); //获取第一个参数值
//    return func_num_args();//获取参数数量
//    return ($a + $b + $c);
    return (func_get_arg(0) + func_get_arg(1) + func_get_arg(2));
}
echo hello2(4, 5, 6);

echo '<hr/>';

// 参数可以不下,用func_get_arg获取值
function hello3()
{
//    return print_r(func_get_args(), true);
//    return func_get_arg(0); //获取第一个参数值
//    return func_num_args();//获取参数数量
//    return ($a + $b + $c);
    return (func_get_arg(0) + func_get_arg(1) + func_get_arg(2));
}
echo hello3(4, 5, 6);

echo '<hr/>';

$siteNum = 'php.org';
function hello4()
{
//    global $siteNum;
    return $GLOBALS['siteNum'];
}
echo hello4();

运行实例 »

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

实例

<?php
/**
 * 数组函数
 * 1. 键值操作
 * 2. 数组内部指针操作(巡航)
 */

$user = ['id' => 5, 'name' => 'peter', 'gender' => 'male', 'education' => 'primary school'];
echo '<pre>' . print_r($user, true) .'</pre>';

echo '<hr/>';

// in_array() 判断数组中是否存在某个值
echo in_array('peter',$user) ? 'exist' : 'no exist';

echo '<hr/>';

// array_key_exists()   判断某个键名是否存在于数组中
echo array_key_exists('name', $user) ? 'exist' : 'no exist';

echo '<hr/>';

// array_values()   以索引方式返回数组的值 组成的数组
print_r(array_values($user));

echo '<hr/>';
// array_values()   以索引方式返回数组的键 组成的数组
print_r(array_keys($user));

echo '<hr/>';

// array_search()   以字符串的形式返回指定值的键
$key = array_search('peter',$user);
echo $key;
echo '<hr/>';
echo $user[$key];

echo '<hr/>';
//  键值对调 array_flip
print_r(array_flip($user));

echo '<hr/>';
//数组内部操作
echo count($user);

echo '<hr/>';
// key()    返回当前元素的键
echo key($user);

echo '<hr/>';
//current   返回当前元素的值
echo current($user);

echo '<hr/>';

//  next()  指针下移,指向下一个
next($user);
echo key($user);
echo '<hr/>';
echo current($user);

echo '<hr/>';

next($user);
echo key($user);
echo '<hr/>';
echo current($user);
echo '<hr/>';

//  重置,复位指针 reset
reset($user);
echo key($user);
echo '<hr/>';
echo current($user);

echo '<hr/>';

// 将指针移到尾部,最后一个
end($user);
echo key($user);
echo '<hr/>';
echo current($user);

echo '<hr/>';

reset($user);
//  each()  返回当前元素的键值索引与关联描述,并自动下移指针
print_r(each($user));   //id 5

echo '<hr/>';

//  list()    将索引数组中的值,赋值给变量
list($key, $value) = each($user);  //id 5
//$key = 'name';
//$value = 'peter';
echo $key . ' and ' . $value;

echo '<hr/>';

reset($user);
// while list each 遍历数组 each会遍历函数,然后自动下移指针,遍历完毕自动返回false
while(list($key, $value) = each($user)){
    echo $key . '=>' . $value . '<br/>';
};

运行实例 »

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

实例

<?php
/**
 * 使用数组模拟 堆栈,队列
 * 栈    后进先出    从羽毛球桶里面取羽毛球
 * 队列   先进先出    排队
 */

$user = ['id' => 5, 'name' => 'peter', 'gender' => 'male', 'education' => 'primary school'];
echo '<pre>' . print_r($user, true) .'</pre>';
echo '<hr/>';
echo '当前长度:' . count($user);
echo '<hr/>';

//入栈    array_push返回新数组的长度
array_push($user, 'php');
echo '当前长度:' . count($user);

echo '<hr/>';

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

echo '<hr/>';

//出栈    顺序,从尾到头
echo array_pop($user);
echo '<hr/>';
echo array_pop($user);
echo '<hr/>';


echo '<pre>' . print_r($user, true) .'</pre>';
echo '<hr/>';

reset($user);

echo '<pre>' . print_r($user, true) .'</pre>';  //reset无效

echo '<hr/>';
//  队列操作    shift(),unshift()
echo array_unshift($user, 'php.net');
// 数据从头部进来
echo '<pre>' . print_r($user, true) .'</pre>';

echo array_shift($user);    //  直接返回值;数据从头部出去

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

echo '<hr/>';

//  模拟队列:增删只能从两端进行,不能从同一端进行
array_push($user, 'css');   //入队,尾部入队
echo '<pre>' . print_r($user, true) .'</pre>';

array_shift($user); //头部删除

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

echo '<hr/>';

array_unshift($user, 'html');   //头部入队

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

array_pop($user);   //尾部出队

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

运行实例 »

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

结果图:

1.png

2.png

3.png

4.png

总结:

首先写了表单提交get和post两种形式,get请求会将用户的数据直接显示在浏览器的url上,不安全,而且get请求的数据量很有限;post请求就不会有这些情况,因而很安全。

学习了两种循环,分别是while和do...while,while是入口判断型循环,在函数入口处进行判断,而do....while是出口判断型函数,在函数尾部进行判断。因而如果遇到不符合条件的判断,while不会执行,而do...while会进行一次执行。

函数学习,首先是函数的关键字function,之后声明这个函数,相当于函数名字,然后两个圆括号,其次花括号,花括号独占一行。函数内部用return,外部用echo外加函数名字进行输出。拥有多个参数的函数,传参顺序从前到后,必须先给第一个参数传参(即便第一个参数是函数默认参数),然后才能给与第二个参数;或者在函数圆括号内,把非默认参数放到默认参数之前。

最后学了数组,键值/指针/队列/堆栈的操作。

键值/指针主要就几个关键字的操作进行获取数组中的键或者值。而队列/堆栈就记住,增删只能从两端进行,不能从同一端进行,要么头部入列,尾部出列;要么尾部入队,头部删除;关键字主要也就四个,push/pop/shift/unshift

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