函数是一个被命名的独立代码段,他执行特定任务,并可以给调用它的程序返回一个值
函数的优点
- 提高程序的重用性
- 提高程序的可维护性
- 提高软件的开发效率
- 提高软件的可靠性
- 控制程序的复杂性
声明函数——用户创建函数
function 语句用于声明一个函数。
用户使用function创建函数,函数调用才能执行
return 语句会终止函数的执行并返回函数的值。
php中 . 是拼接字符串的意思。.= 应该是把某个字符拼接的某个数组里吧
global 属性用于返回正则表达式是否具有 "g" 。
如果 g 标志被设置,则该属性为 true,否则为 false。
static 表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。
function 函数名(参数1,参数2…){
函数体return 返回值
}
函数的注释
/**
*函数名称
*函数作用
* @param 定义函数或者方法的参数信息
* @return 定义函数或者方法的返回信息
*/
函数名的命名
函数名的命名采用Camel(骆驼)命名法
通常每个函数都是执行一个动作,所以对它的命名应该清楚的说明它是做什么的。例如:用checkForErrors() 代替 errorCheck(),
命名常用后缀:
Max—含义为某实体所能赋予的最大值;
Cnt—一个运行中的计数变量的当前值;
Key—键值;
例如: getRetryMax表示取得最多重试的次数,getRetryCnt表示取得当前重试的次数
常用前缀
is – 含义为判断一个实例是否存在或者满足某一条件;
get – 含义为取得某一实例变量的值;
set – 含义为设定某一变量实例的值;
例如: isHitRetryLimit(); getHitCnt(); setClassValue()
变量的作用域
- 函数的参数也就是变量,根据可用范围。分为局部变量,全局变量和静态变量
- 局部变量:函数中声明的变量就是局部变量,只能在自己的函数内部使用。
- 全局变量:在函数外声明,在变量声明以后的,直到整个脚本结束前都可以使用,包括在函数中和{}中都可使用
- 静态变量:静态变量只能声明在函数中(类中),不能在全局声明
参数的传递——按值传递
- 函数中参数传递默认为按值传递,函数内部的变化不会对实参有影响
- 参数的传递——按引用传递
- 按引用传递进来的参数必须为变量
参数的传递——函数的默认参数
- 可以在函数声明时,设置默认参数,如果传值了就使用传的值,如果没有传值则使用默认值
- 直接在声明函数时,就为参数给初值。
- 可选值和必须值, 必须从后向前设置
- 默认参数适用于实参个数少于形参个数
当实参个数大于形参时,可使用可变参数函数格式
实现可变个数参数的函数时需要使用以下两个函数
func_get_args() :将所有传递给函数的参数作为一个数组返回
func_num_args() :返回参数的总数
如果一个变量后面有括号(), 就将寻找与变量值同名的函数
变量函数赋值时使用字符串
递归函数
递归函数也就是自调用函数,在函数的内部直接或者间接的调用自己
通常在此类型的函数体内会附件一个条件判断是否需要执行递归调用
若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行
需要在特定条件下终止函数递归调用,防止函数死循环
应用函数——系统函数库
PHP给2000多个函数, 都属于系统函数,都可以通过名称直接使用。
一定要先使用系统函数,如果系统函数没有你想要的功能,再去自己定义函数
系统函数库——读懂PHP手册
1. 常规函数
bool copy ( string source, string dest )
2. 带有mixed , mixed表示可以传任何类型的数据
bool chown ( string filename, mixed user )
3. 带有&参数的函数, 表示引用赋值, 这个参数不能传值,只能传一个变量,然后函数将变量的值改变,我们在使用这个变量时,值也是变化的
4.带有[]的函数, 表示这个参数是可选的,如果你传值了就使用你传的值,如果没有传值则使用默认值
void arsort ( array &array [, int sort_flags] )
5. 带有...的参数函数, ...表示可以传任意多个参数
int array_unshift ( array &array, mixed var [, mixed ...] )
PHP变量函数库
PHP日期时间函数库
PHP数学函数库
调用自定义函数库
- include语句: void include(string filename)
- require语句: void require(string filename)
- include_once语句: include_once(string filename)
- require_once语句: void require_once(string filename)
调用函数的区别
- include在用到时加载
- require在一开始就加载
- _once后缀表示已加载的不加载
- include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。
- require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。
自定义函数
- function 函数名(参数列表){
- 函数体
- 返回值
}
函数相关变量使用
- 局部变量与全局变量
- 局部变量:定义在函数内,函数外不可调用
- 全局变量:定义在函数外,函数内调用修改需要global
- 静态变量
- statice关键字定义在函数内
- 一个函数多次调用之间共用
参数使用
- 按值传递:默认
- 引用传递:& 对实参产生影响
- 参数默认值:直接设置
- 不定参数函数设置: func_get_args() func_num_args()
时间函数
数字函数