PHP学习笔记——5.函数
目录:
1.概念
从编程的角度,
将若干语句封装在一起,取个名字
再依据名称进行调用,即为函数
2.声明及调用
function abc(形参) {
...
return 值;
}
abc(实参);
实际上,形参即为变量名,实参即为变量值
3.命名规范
和变量一致,但不区分大小写
4.默认参数
function abc(形参=‘默认值‘) {
...
}
abc(); =>默认值
abc(实参); =>传入值
注:若有多个形参,且其中某个形参有默认值,则将其放在最后
5.函数的作用域
局部变量:函数内部的变量
全局变量:函数外部的变量
默认情况下,函数体内的变量,与外界的变量无关
注:JS中全局变量会被函数内部找到调用,但PHP不会
执行函数式,会开辟一块独立调用空间,调用完即释放
6.函数的执行权与执行权的交回
当调用函数时,程序的执行权进入到函数内部
当语句执行完/return时,执行权即交回
7.函数返回值
有return值则返回return值
若没有return值或return为空则返回NULL
注:return只能返回 一个 值/复合值
8.动态函数
function wel(){
echo ‘欢迎‘;
}
function hi(){
echo ‘你好‘;
}
$func=$_GET[‘func‘]; <=wel/hi
$func(); =>欢迎/你好
加()后,PHP即会将括号前的值当做函数进行解析
9.引用传参
$age=19;
function foo(&$num){
$num+=5;
}
foo($age);
echo $age; =>24
注:此时传递的不是$age的值19,而是将$age的地址传递给了$num,
当$num+=5时,$age自然也跟着改变了
所以,局部变量和全局变量并不是水火不容的
是有机会相互影响的,如引用传参、超全局变量
10.递归
①定义
函数在其内部调用自身
②初识
例:求1到100的和
可分析分:
sum(100) == sum(99) + 100
sum(99) == sum(98) + 99
...
sum(2) == sum(1) +2
sum(1) == 1
即:
function sum ($n) {
if($n > 1) {
return sum($n-1) + $n;
}else{
return 1;
}
}
例:递归操作联级目录
a{1,2(A,B<①②③>,C),3}
则操作顺序依次为 1 2 A B ① ② ③ C 3
③注意
因递归为自身调用自身,所以层次太深,不宜使用
必须有一个终止条件
11.超全局变量
①定义
一般情况下,页面内声明的‘普通全局变量‘,在函数内访问不到
但:‘常量‘在函数内能访问
且还有一类变量——超全局变量,在页面的任意一处(无论是多深层的函数),
都可直接访问
②九大超全局变量
$_GET[] =>接收地址栏参数
$_POST[] =>接收POST型参数(如:用户注册参数)
$_PEQVEST[] =>是$_GET、$_POST、$_COOKIE的并集
$_FILES[] =>文件上传
$_COOKIE[] =>用户登录
$_SESSION[] =>用户登录
$_ENV[]
$_SERVER[] =>服务器及访客信息(如用户所使用的系统版本、IP地址等)
$_SERVER[‘REMOTE_ADRR‘] =>用户IP
$_SERVER[‘HTTP_USER_AGENT‘] =>用户浏览器信息
$_GLOBALS[] =>页面内所有全局变量的‘名单‘,可在其中找到所有声明过的变量
global关键字,用于在函数体内部引用全局变量
例:$age = 5;
function t(){
global $age; =>引用了全局范围内的$age
$age++;
}
t();
echo $age; =>6
作者:@zhnoah
出处:http://www.cnblogs.com/zhnoah/
本文版权归本人和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连
接,否则保留追究法律责任的权利。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。