php(4)——函数

Aug 08, 2016 am 09:27 AM
echo function php var

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Date et heure de CakePHP

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Téléchargement de fichiers CakePHP

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Routage CakePHP

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

Discuter de CakePHP

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Configuration du projet CakePHP

Guide rapide CakePHP Guide rapide CakePHP Sep 10, 2024 pm 05:27 PM

Guide rapide CakePHP

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Comment configurer Visual Studio Code (VS Code) pour le développement PHP

See all articles