php函数
1.函数概念:
函数是用来完成某种特定任务的可重用代码块;
函数可以使程序更具模块化,拥有良好的结构;
函数定义后在程序中可以重复调用;
函数分为内置函数和自定义函数
2. 内置函数
PHP系统提供了大量功能强大的函数,帮助我们解决各种问题;
3.创建自定义函数
function
function_name(parameters) {
//function body
}
function
sayhello(){
echo
'hello'
;
}
函数用
function
关键字来声明;
函数名称是由字母或下划线开始,中间可以包含数字;
函数名不区分大小写,不过在调用函数的时候,通常使用其在定义时相同的形式;
php不支持函数重载, 所以自定义函数不能和内置函数重名;
不能在一个文件中自定义同名的函数;
参数出现在括号中,如果有多个参数用逗号分隔;
4.函数调用
语法格式:
fun_name(parameters);
注意不同语言的区别:
在Java等强类型语言中方法的名字严格区分大小写;
C语言中的函数也是严格区分大小写;
但PHP到现在的版本,函数名称不区分大小写;
很多语言允许函数(方法)的重载,即函数有相同的名称但是函数参数不同;
PHP不支持函数的重载;
5.传递参数
值传递(传值)
函数内对参数值的改变不会影响函数外部的值;
引用传递(传址)
有些情况下,可能希望在函数体内对参数的修改在函数体外也能反映;
使用引用传递参数要在参数前加上
"&"
符号;
变量本身传入,传入后的变量与原变量建立联系;
函数体内变量的变化,会影响到原变量本身;
默认参数值
可以为参数指定默认值,在没有提供其他值的情况下,则将默认值自动赋给该参数;
可选参数
可以指定某个参数为可选参数,这些参数需要放在参数列表的末尾,需且要指定其默认值为空;
如果指定了多个可选参数,可以选择性地传递某些参数;
6.从函数返回值
通常情况下,只依靠函数做某些事情还不够;
需要将函数的执行结果返回给调用者,这时可以使用
return
语句返回结果;
return
语句变执行后,将使得函数立即结束运行,并且将控制权返回被调用的行;
function
mysquare(
$num
){
if
(
$num
== ‘’){
return
;
}
$res
=
$x
*
$x
;
return
$res
;
}
echo
mysquare(4);
7. 递归函数
递归函数是一个可以重复调用自身的函数,直到满足某个条件为止;
递归函数常用来解决一些重复的问题;
递归应该特别注意条件,防止进入死循环中;
function
repayment(
$balance
,
$payment
){
static
$count
= 1;
$newbalance
=
$balance
-
$payment
;
echo
$count
.
' '
.
$newbalance
.
'<br>'
;
if
(
$newbalance
> 0){
$count
++;
repayment(
$newbalance
,
$payment
);
}
else
{
exit
;
}
}
$money
= 20000;
$month_pay
= 1000;
repayment(
$money
,
$month_pay
);
变量作用域和生命周期
由于引入了函数,程序中变量的能见度发生了变化,即变量的作用范围发生了改变;
变量分为:全局变量,局部变量,静态变量;
1.局部变量
函数体内定义的变量为局部变量,只在函数体内可见;
局部变量的作用域:从声明它的那条语句开始到函数结束;
$str
=
'hello php'
;
echo
'1:'
.
$str
.
'<br>'
;
function
change(){
$str
=
'hello everyone'
;
echo
'2:'
.
$str
.
'<br>'
;
}
change();
echo
'3:'
.
$str
;
2. 全局变量
函数体外定义的变量为全局变量,与局部变量相反,全局变量可以在程序的任何地方访问;
如果在函数体中需要使用全局变量,使用
global
关键字访问;
全局变量的作用域:从声明它的那条语句开始到文件末尾;
$a
= 23;
function
test()
{
global
$a
;
$a
= 34;
return
$a
;
}
test();
echo
$a
;
3. 静态变量
局部变量在函数退出时会被撤消,与局部变量不同,静态变量在函数退出时不会丢失值,并且再次调用函数时还能保留这个值;
在变量名前面加上
static
关键字就可以声明一个静态变量;
function
keep_val(){
static
$count
= 0;
$count
++;
echo
$count
;
echo
'<br>'
;
}
keep_val();
keep_val();
keep_val();
函数库
通常将常用的函数组织到函数库中,可以在以后类似的应用程序中重复使用。
需要调用时使用
include
()或
require
()将函数库包含到脚本中;
include
与
require
1.
include
()语句将在其被调用的位置处包含一个文件。
include
(
"init.php"
);
2.
include_once
()的作用与
include
()相同,不过它会首先验证是否已经包含了该文件.
如果已经包含,则不再执行
include_once
();
3.
require
()
4.
require_once
()
require
() 与
include
() 之间的区别
如果
require
()包含文件出错时,脚本将停止执行。 而使用
include
()脚本将继续执行。