<?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 包含一次
?>