当前位置:Gxlcms > PHP教程 > php(4)——函数

php(4)——函数

时间:2021-07-01 10:21:17 帮助过:4人阅读

PHP中函数无需在调用之前被定义;

PHP 中的所有函数和类都具有全局作用域,可以定义在一个函数之内而在之外调用,反之亦然;

PHP 不支持函数重载,也不可能取消定义或者重定义已声明的函数;

在 PHP 中可以调用递归函数。但是要避免递归函数/方法调用超过 100-200 层,因为可能会使堆栈崩溃从而使当前脚本终止。

函数的定义:

function 函数名([参数列表]){

函数体

PHP默认是采用值传递的方式,但也可以传递引用(该方式可以在函数体改变传入的参数值)

如:

function fun(&$var){

$var++;

}

$var = 0;

fun($var);

echo $var;

输出 1;

PHP支持默认参数值。

如:

function fun($var1,$var2=2,$var3=3){
return $var1+$var2+$var3;
}

echo fun(1);
echo fun(1,1);
echo fun(1,1,2);

将分别输出6 5 4

注意:任何默认参数必须放在任何非默认参数的右侧;否则,函数将不会按照预期的情况工作。

如将上述函数改为:

function fun($var2=2,$var3=3,$var1){
return $var1+$var2+$var3;
}
echo fun(1);
echo fun(1,1);
echo fun(1,1,2);

上述除了第三种调用方式能正常执行外,前两种都会出现问题。

PHP支持可变数量的参数列表。

在PHP5.6之前,获取参数的信息需要用到func_num_args()获得参数的数目,func_get_arg(i)获取第i个参数的值;

如:

function fun(){
$len = func_num_args();
$res = 0;
for($i = 0; $i<$len; $i++){
$res += func_get_arg($i);
}
return $res;
}

在PHP5.6中引入了 ...$args的方式,

如:

function fun(...$args){
$res = 0;
foreach ($args as $val){
$res += $val;
}
return $res;

}

两种方式的结果都是一样的。

PHP中可变函数的概念

即如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

例:

function fun(){
echo "Hello";
}
$var = "fun";
$var();//将会调用fun()函数

PHP中的匿名函数

匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。

也可以将匿名函数通过赋值的方式指定其函数名,如:

$fun = function (){
echo "HelloWorld";
};
$fun();

以上就介绍了php(4)——函数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

人气教程排行