一、函数定义
a) 定义: 就是一个被命名的、独立的代码段、他可以执行特定任务,并且返回给调用他的程序一个返回值
b) 函数是被命名的:每个函数都是有唯一的名称,在程序的其他部分使用该名称可以执行函数中的语句,称为调用函数
c) 函数是独立的: 无须其他程序干预,函数可以自己执行其任务
d) 函数执行特定任务: 任务就是我们要运行的特定代码和具体工作,比如输出一行字、算出立方根 对数组进行排序等
e) 函数可以将一个返回值返回给调用的程序:程序调用函数时,将执行该函数中的语句 而这些语句可以将信息返回给调用他们的程序
二、函数的优越性
a) 提高程序的重用性
b) 提高软件的可维护性
c) 提高软件的开发效率
d) 提交软件的可靠性
e) 控制程序设计的复杂性
三、自定义函数
a) 函数的声明
- 语法格式
function 函数名([参数1,参数2,参数3,....参数n])
{
函数体//可以是多条代码 可以是代码块
return 返回值
}
说明:参数可以没有,也可以有多个如果没有参数小括号要保留
return 返回值 可以没有 但是没有返回值的函数是不完整的
return 语句结束后,不要在写其他代码 因为不会被执行
b) 函数的命名
命名规则
1.函数名命名遵循php命名规则 字母数字下划线组成但是不能以数字开头
2.函数名不区分大小写
3.不能重复声明函数名一样的函数
c) 函数的调用
格式
函数名();
d) 检测函数名是否被定义
function_exists(); 判断函数名是否被声明
e) 参数列表
1.形参
形参就是在函数声明的时候小括号里面的参数我们就叫做形参
形参可以有默认值 也可以没有默认值
默认值相当于小三 实参就是老婆
没有默认值的时候 必须有实参传递过来
如果有默认值请将默认值放在参数的最右边没有默认值的请放在左边
多个形参的时候中间使用逗号隔开
2.实参
实参是在函数调用的时候小括号里面的参数我们叫做实参
实参的个数可以比形参多,多出来的参数没有用,所以我们实参的个数需要按照形参的个数去写,但是如果你的形参有默认值可以少写你的实参
f) return 返回值
作用:
1.return语句可以返回一个函数体任意值
2.return 相当于退出函数所以 return后面的代码不会被执行
3.如果函数中没有return就只能算是一个执行过程不能将函数里面的值拿到 那么也就是说只能看看这个函数不能使用了函数如果没有return就是一个不完整的函数
四、各种各样的函数
1.常规参数的函数 就是实参和形参应该的个数相等 类型一致
2.可变个数参数的函数(不需要写形参) 实参(任意)个数大于形参个数的函数 参数长度不固定
a.func_get_args() 获取参数列表并且以数组的形式返回
b.func_num_args() 获取参数个数
c.func_get_arg(index) 通过下标取出我们数组中的值
3. 变量函数
变量函数:如果一个变量后面有括号 $var = ‘hello’;$var() 就会寻找与变量值同名的函数进行调用
4.回调函数
回调函数:有一个参数值是另一个函数的函数名并且会自动调用该函数
//将函数名sum,函数名xo,函数名chicken 函数名shang 作为字符串参数传递给result函数那么我们就说sum,xo,chicken,shang,就是result函数的回调函数
5. 匿名函数
声明格式:
$user= function($a,$b){};
主要的事情说三遍:一定要加上分号 一定要加上分号 一定要加上分号
匿名函数后面必须加分号 算作功能型语句
扩展use 会自动把外部的同名变量引入到内部使用
使用use的时候 被引入的变量必须存在
6.递归函数
很久很久以前 有一座山 山里有个庙 庙里有个和尚在和李涛讲故事
故事讲的是什么呢 很久很久以前 有一座山 山里有个庙 庙里有个和尚在和文章将故事 故事讲的是什么呢 很久很久以前 有一座山 山里有个庙 庙里有个和尚在和王龙讲故事 讲的是什么呢 讲的是王龙嫖娼的故事
递归函数:就是自己调用自己的函数就是递归函数
五、PHP变量的范围
- 全局变量
在函数外声明的变量就是全局变量
全局变量在局部中使用
在函数内部使用全局变量需要借助$GLOBALS 超全局数组
2.局部变量
在函数内声明的变量就是局部变量
局部变量在全局中使用
如果想要局部变量在全局中使用 也需要借助一个关键字 global global关键字声明变量
注意: global关键字声明变量的时候不能再声明上直接赋值
根据存储方式上可以分为动态存储和静态存储
i. 普通变量(动态存储)
$变量名 = 变量值
函数调用一次声明一次释放一次
ii. 静态变量
static $变量名= 变量值
声明的静态变量会在第一次运行函数的时候就存储到内存中不会释放,每调用一次都会直接在内存中取出来
六、使用自定义函数库
- include
写法:
a) include ‘function.php’
b) include(‘function.php’)
2.require
写法:
a) require ’function.php’
b) require(‘function.php’)
3. include_once
作用:如果该文件中代码已经被包含了,则不在被包含否则在进行包含,以确保文件只被包含一次。
3.require_once
作用:如果该文件中代码已经被包含了,则不在被包含否则在进行包含,以确保文件只被包含一次。
区别:include 弹出的错误会继续执行 require 弹出的错误不会继续执行