概念:文件引入、新栈、默认值、按引用传递、global、删除变量unset();
## 自定义函数
为完成某一个功能的程序指令集合。
## 系统函数
### 文件引入:
**require_once ** 会判断是否包含过了,更加节省资源,一般放在页面最前面
require 出现错误,则会终止程序
include 如果出现错误会继续执行,在页面需要的时候引入
include_once
理解函数的调用过程:
遇到函数,内存里面开辟新栈,一个函数对应一个独立的栈
因此,函数的变量是局部的,函数外不生效。
![](https://box.kancloud.cn/351f5a8223a4e044aa8046bfae31fc09_851x383.png)
函数有return 才能返回结果,否则返回是空的。
![](https://box.kancloud.cn/a6064401c8fe1acfbfda52ad2463c238_959x384.png)
函数中使用外部变量 global
~~~
$a=100;
function jisuan(){
global $a;
$a++;
}
~~~
`unset($a); `释放给定变量。不再使用$a,后面如果要用,需要重新定义。
函数默认值:
function box($a,$b=5){
.........
}
如果没有赋新值,就会使用默认值。
box(3);//第二个参数默认使用5
box(3,3);
函数默认按值传递,如果需要**按引用传递,使用&变量名**
也就是函数里的变量能够影响函数外的变量。
~~~
$a=211;
function abc(&$b){
$b=312;
}
abc($a);
~~~
![](https://box.kancloud.cn/7765cfe301bb4676ed75ee794b9a5000_832x198.png)