第一节函数的分类
系统函数
php提供了丰富的系统函数,可直接使用。这些函数涵盖了软件开发的大部分功能,具体的使用方法,请查看php开发手册。除了各种功能分类清晰的函数,还有一些常用的杂项函数:
自定义函数
自定义函数命名口诀:字母数字下划线,首字母不能为数字,不会区分大小写,且不能使用关键字,不能重复来定义
PHP第二节函数的参数
形参
形式上的参数在函数定义时声明实参
实际上的参数,在函数使用时声明实参和形参类型需一致实参和形参数量要一一对应(定义的参数必须传值,除非有默认值)形参的默认值
若某个形参的值总是固定的某一个值,可以使用默认值指定具有默认值的形参,放到参数列表后面functionfun3($a,$b=20){return$a+$b;}
有默认值的参数可以省略
fun3(10)
查看实参函数
第三节函数的返回值
函数当中若遇到return,则会将return后方的内容返回到函数调用处进行保存return后面的语句将不再执行若函数没有任何返回,则默认返回null类型第四节变量的作用域
局部变量
在函数内部定义,只作用于函数内部
默认情况下,函数参数通过值传递(因而即使在函数内部改变参数的值,它并不会改变函数外部的值)
$a=1;//外部变量functiontest($arg){$arg+=;}
test($a);//只将外部变量的值传进去
var_dump($a);//1外部变量$a的值并没有改变
全局变量
在函数外部定义,作用于当前整个脚本,在函数内部使用需要使用global关键字声明
$a=10;//全局变量functiontest(){global$a;//用global引入全局变量,在函数内部使用,子函数引入父函数变量,不能使用global$a++;}test();var_dump($a);//结果:11
注意:global只能用于引入全局变量,子函数引入父函数变量,不能使用global。
引用变量传参
使用global命令,将全局变量引入到函数内部,但这种方式不够灵活,可以使用引用变量的方法:
定义变量时,用修饰参数
$a=10;functionrun($arg){$arg++;}run($a);var_dump($a)//结果:11
静态变量
在函数内部定义,作用于函数内部,使用static关键字声明
functiontest(){static$a=1;//静态变量$a++;echo$a;}test();//2test();//3test();//4
echo$a;报错静态变量只作用于函数内部,外部无法读取
第五节超全局变量
超全局变量
在全部作用域中始终可用的内置变量
获取application/json的post数据
php://input是一个流,可以读取没有处理过的POST数据(即原始数据)
$postjson=file_get_contents(php://input);
第六节其他应用
变量函数
定义测试函数
functiontest(){echoweb前端;}
将函数的名称以字符串形式存储到指定变量
$ceshi=test;
此时该变量可以作为函数来使用,使用规则和函数一致
$ceshi();
应用于回调函数
functionplay(){echoplay;}functionrun($fn){$fn();};
run(play);//将回调函数名作为字符串传入
递归
回文数递归(recursion)函数
functionrecursion($num){echo$num;//判断if($num1){recursion($num-1);}echo$num;}
调用函数
recursion(3);//结果: