Heim  >  Artikel  >  Backend-Entwicklung  >  php(4)——函数

php(4)——函数

WBOY
WBOYOriginal
2016-08-08 09:27:18986Durchsuche

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$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教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:一份IT实习生的总结Nächster Artikel:php自制小型分页代码