php第四节(循环和函数)
<?php //循环有 for(){}、有while(){} 有do{}while()、foreach(){}循环 //1、for(){} for($i=0;$i<=9;$i++){ echo $i."<br/>"; } //2.while() $var =1; while($var<=5;){ echo "*"; $var++; } //3.do{}while() do{ echo "林夕"."<br/>"; $t++; }while($t<=6;) //foreach() 主要用于循环数组 $arr=[1,2,3,4,6]; foreach($arr as $value){ echo $value."<br/>"; } //break;高级使用 终止循环体 //continue的使用 跳出当前循环 继续执行下一次循环 //冒泡排序 //count($arr) //获取数组长度 $arr=[88,55,66,77,11,99,33,22,44,0]; $arrLen=count($arr); for($j=1;$j<$arrLen;$j++){ for($i=0;$i<$arrLen-$j;$i++){ //如果$arr[$i]>$arr[$i+1] 进行冒泡排序 if($arr[$i]>$arr[$i+1]){ //把比较后大的值赋值给变量 暂存起来 $tmp=$arr[$i]; //比较后小的值赋值给$arr[$i] $arr[$i]=$arr[$i+1]; //把比较后大的值给$arr[$i+1] 这样交换位置进行下一次比较 $arr[$i+1]=$tmp; } } } echo "<pre>"; print_r($arr); /** * 函数的类型 * 无参无返 * 无参有返 * 有参无返 * 有参有返 */ function qwe(){ echo "无参无返"; } qwe(); //无参有返 function asd(){ return "林夕"; } $res=asd(); echo $res; $str="林夕"; function linxi($str){ echo $str."有参无返"; } linxi(); //有参有返 $a=3; $b=6; function sum($a,$b){ return $a+$b; } $num=sum(); echo $num; /** * 变量的作用域 * 全局变量 定义在函数之外的变量 作用于全局 * 局部变量 定义在函数内部的变量 作用函数内部 * 静态变量 函数内部定义的变量实现函数数据的共享 * 函数内引用全局变量 需要用关键字 global 才能使用 global $变量 */ $res="navl"; function strings(){ global $res; $res="1445"; return $res; } echo strings(); //可变函数 把一个函数的名称作为一个值赋给一个变量 实现回调函数 $a=5; $b=4; function add($a,$b){ return $a+$b; } $strAdd="add"; $strAdd(); //匿名函数 语法的测试 $var = function () { echo "hello world2"; }; $var(); //回调函数 把函数的函数名称作为参数传递给另一个函数 $arr=[11,22,33,44,55] function addT($num){ return $num+22; } //array_map()为数组的每个元素应用回调函数 这个函数为php内置函数 $newArr = array_map("add", $arr); echo "<pre>"; var_dump($newArr); //我们自己写个函数代替array_map(); function addA($clerback,$arr){ $newArr=[]; foreach($arr as $value){ $newArr[]=$clerback($value); } return $newArr; } $res=addA("addT",$arr); echo "<pre>"; var_dump($res); //递归 在函数内部调用自身 //递归必须要有出口 function foo ($num) { echo "hello world"."<br/>"; if ($num == 0 ) { return; } --$num; foo($num); } $num = 2; foo($num); //导入文件函数 include() require //include 如果包含文件失败 会报错 但会执行后续代码 //require 如果包含文件失败 会报错 不会执行后续代码 //include_once 包含一次 //require_once 包含一次 ?>