PHP函数
一、 数学中的函数:
a) Sin()、Cos()、tan()、log() 这些都是数学函数,但是都已经忘了啥意思了!没关系,在php当中的函数和这些函数的概念还是有一定的区别的
二、 生活中的函数:
a) 定义:某一个具有名字的工具,它能够完成一些指定的任务!这样的东西,我们就可以称之为一个函数!
b) 举个例子:
i. 石头:它的名字就是石头,它的作用就是砸核桃,攻击!
ii. 长矛:它的名字就是长矛,它的作用是插、扎、刺、砍!
iii. 打火机:它的名字就是打火机,它的作用就是点烟,点火,放炮……
iv. 小米:它的名字是小米,它的作用可以吃,还可以打电话!
v. 锤子:它的名字是锤子,它的作用可以钉钉子,还可以打电话,按摩
vi. 三星:它的名字是三星,它的作用可以打电话,爆破!
三、 为啥要使用函数?
a) 1.使用函数可以让我们的工作效率更高【代码效率更高】
b) 2.它能够使我们的代码更简洁
c) 3.它更易于维护!
四、 PHP当中的函数:
a) 定义:能够完成指定任务的,还得是已命名的代码块,这就是php当中的函数!
b) 函数的分类:
i.系统函数:
1. 其实我们已经见过了很多的系统函数了!但是之前我都叫他小工具!我都是昧着良心叫的
2. 例如:var_dump()、isset()、empty()、settype()、gettype()、is_int()、is_float()……………这些系统已经定义好的函数,都是系统函数!
3. 如何来使用一个系统该函数(看手册)?
a) 看函数的功能
b) 看函数的参数
c) 看函数的返回值
d) 看函数的一些实例
ii. 自定义函数:
1. 需要自己手动去创造的函数,就属于自定义函数,它是系统函数当中不存在的那些函数!
五、 你的第一个自定义函数:
a) 定义函数的几个步骤:
i. 写程序代码
ii. 给程序代码外面加上花括号
iii. 花括号前方起了一个名字,并且加上了小括号
iv. 最后才在最前方加上了function关键
b) 关于函数的命名规则:
i. 字母数字下划线组成、不能使用数字开头,不区分大小写,不能重复定义,不能使用关键字命名!
c) 关于函数的使用方法:
i. 直接将函数名字拿过来用即可
ii. Function 函数名(参数1[,参数2,参数3,…]){
函数体;
iii. }
iv. 使用:函数名()
a) 关于函数的参数:
i. 形参:
1. 定义:形式上的参数
2. 形参,是我们在定义一个函数的时候,写在函数名后方小括号当中的变量的内容
3. 形参可以定义多个,但是一定要有意义
4. 多个形参之间使用逗号隔开
5. 形参的个数可以使无数个
ii.实参:
1. 定义:实际上的参数
2. 实参,是我们在调用一个函数的时候,写在小括号当中的实际内容
3. 实参也可以定义多个,但是一定要和形参是一一对应的!
4. 实参之间也是使用逗号隔开的!
5. 实参的值也可以是存值的变量
iii. 默认值:
1. 在某些情况下,函数的某一个参数可能是固定的值不变,因此这种情况下,我们通常胡给定那个参数一个默认值!
2. 只有形参当中有默认值的情况下,实参和形参的数量可以不一一对应,这是一个例外情况
3. 拥有默认值的形参,必须放到参数列表的后方
4. 拥有默认值的形参,实参处可以不给定值,但是,如果实参处给定了具体的值,则实参的值会覆盖形参的值
iv. 函数的使用位置:
1. 函数的使用可以在函数之前,也可以在函数之后
2. 原因:当程序执行某一个脚本,会将脚本当中的所有函数存放到缓冲区当中,缓冲区是内存当中的一个区块,所以,无论在当前脚本的任何位置,都是可以调 用缓冲区当中的函数的!
v. 函数当中的return关键字:
1. 我们通常使用的函数,都是将结果保存下来,而非直接输出,因此,在函数中使用return关键字,可以将结果返回到调用处,并且保存下来!
2. Return后面的代码一概不执行,在PHP当中不会报错,但是在JAVA当中会直接报错,并告诉你,这里的代码是永远无法到达的代码,建议删除!
vi. 变量的作用域:
1. 因为函数的出现,导致了变量作用域的不同!
2. 全局变量
a) 定义:在php脚本当中所定义的变量就属于全局变量!
b) 全局变量作用域当前整个脚本!
c) 在函数当中如果想要使用一个全局变量,需要使用global关键字来将外部的全局变量叫到函数内部
3. 局部变量
a) 定义:在函数当中所定义的变量,叫做局部变量!
b) 局部变量只作用于函数内部!
4. 静态变量(了解!)
a) 定义:在函数当中使用static关键字声明的变量就属于一个静态变量。
b) 静态变量会保留上次执行完的结果,而且静态变量在函数中赋初值的操作只执行一次!
c) 原理:当第一次调用拥有静态变量的函数,静态变量的值会直接存储到静态区当中,当下一次在调用该函数的时候,会首先去静态区当中寻找是否已经拥 有该静态变量,如果有直接拿过来使用。
5. 超全局变量(了解):
a) $GLOBALS:包含所有的超全局变量!
1. $_SERVER:服务器和执行环境信息
2. $_GET:通过URL参数传递给当前脚本的变量的数组
3. $_POST:通过HTTP POST方法传递给当前脚本的变量
4. $_FILES:保存文件的上传信息
5. $_COOKIE:通过HTTP Cookies方式传递给当前脚本的信息
6. $_SESSION:当前脚本可用 SESSION 变量的数组
7. $_REQUEST:包含GET、POST和COOKIE信息的集合
vii. 关于函数库的引入:
1. 函数库其实就相当于一个工具箱,当我们需要使用工具箱当中的某一个工具的时候,直接将工具箱拿过来即可!
2. Include(“”) 或 include “”;
a) 常用于引入一些并非非常重要的函数库
b) 如果include方法引入文件失败,会提示一个warning级别的错误,但是脚本依然可以执行!
3. Require(“”) 或 require “”;
a) 常用于引入一个对当前脚本非常重要的函数库
b) 如果require方法引入文件失败,会提示一个Fatal级别的错误,这是致命错误,将会中断整个脚本的执行!
4. Include_once
a) 如果重复引入一个文件,include_once代表只引入一次当前文件!
b) 其他特点同上!
5. Require_once
a) 如果重复引入一个文件,require_once代表只引入一次当前文件
b) 其他特点同上!
viii. 可变参数个数的函数!(了解)
1. Func_num_args() 获取实参总个数!
2. Func_get_args() 获取实参列表的详细信息
在这个列表当中,0-5代表下标,10-60代表对应的值
3. Func_get_arg() 获取指定下标的实参信息
ix. 引用函数:
1. Function demo(&$num1){
$num1 = 200;
}
3. $num1 = 100;
4. Demo($num1);
5. Echo $num1; //200
6. 注意:
a) 使用引用函数概念是,要注意,在实参处存放的值应当是一个变量,而不是一个实际的值,因为值没有地址,变量有地址!
x. 变量函数[ 回调函数 ]:
1. 定义:将一个函数的名字作为一段字符串,赋值给一个变量,则该变量名可以作为函数名去使用!
xi. 回调函数:(了解!)
1. 定义:一个函数当中可能会调用另外的一个函数,这就是一个回调函数!
2. 注意:
a) 回调函数会使用到变量函数的概念!
b) 回调函数通常是应用在一些对于主程序的规则限制的作用
i. 递归函数:
1. 递:进去
2. 归:出来
3. 递归其实就是函数自己玩自己!