Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php函数的种类与调用方法大揭密

php函数的种类与调用方法大揭密

天蓬老师
天蓬老师asal
2017-04-27 11:29:292261semak imbas

PHP中的函数看上去很简单,实际上功能非常强大,我这里按函数名称是否固定,可以分为以下三大类:

一、名称固定的函数:

这类函数,也叫:常规函数,直接用关键字function来创建,也是大家最熟悉的类型,例如:

<?php
//1按名调用:最直接和普通的方式echo 
&#39;1.用function关键字创建常规函数,按函数名称调用:<br>';
function add($a, $b){return $a.'+'.$b.'='.($a+$b);};
echo add(5,6);
echo '<hr>';

执行返回:

1.用function关键字创建常规函数,按函数名称调用:
5+6=11

 二、名称动态设置的函数:

这类函数有很多种称呼,例如:匿名函数、可变函数、变量函数、闭包函数等,其实都一样的,大家别被名称吓住了。

这种动态设置的函数,是用引用这个函数的变量名来调用,所以非常适合放在回调函数中使用~~

为了教学需要,我这里统称为:匿名函数吧。

匿名函数的创建主要有二种方法,有的教材分开来说了,我这也分开吧。

1、创建方法一:用PHP内置的create_function(参数表,函数体)函数完成,这个函数有二个参数,这二参数必须放在引号中,别问为什么,PHP就是这样规定的,如果不服,那你创造出一个编程语言吧~~

//2.用系统函数create_function()来创建一个匿名函数/可变函数/变量函数/闭包函数echo 
'2.用内置create_function()函数创建匿名函数,用变量名调用:<br>';
$func1 = create_function('$a,$b','return $a.\'+\'.$b.\'=\'.($a+$b);');
echo $func1(5,6);
echo '<hr>';

执行返回:

2.用内置create_function()函数创建匿名函数,用变量名调用:
5+6=11

2、创建方法二:用function关键字来创建,创建过程与常规函数一样,不同之处在于,它出现在值的位置上,也就是'='等号的右边。将创建好的函数整体赋给一个变量;

//3匿名函数:也叫闭包函数,将函数做为值赋给一个变量echo
'3.用function关键字创建匿名函数,用变量名调用:<br>';
$func2 = function ($a, $b){return $a.'+'.$b.'='.($a+$b);};
echo $func2(5,6);
echo '<hr>';

执行返回:

3.用function关键字创建匿名函数,用变量名调用:
5+6=11

三、没有函数名称,创建完直接传参调用执行:

这类函数,它也匿名函数很像,但更加的粗暴,创建好直接用括号一包,传上参数就可以调用了,所以这类函数根本不需要名字,属于一次性的函数。就像一次用品,用完就扔掉了。

//4自执行函数:创建完立即执行不必明示调用
echo '4.用function关键字创建匿名函数,然后直接传参调用执行:<br>';
echo (function ($a,$b){return $a.'+'.$b.'='.($a+$b);})(5,6);  
//自运行的匿名函数

执行返回:

4.用function关键字创建匿名函数,然后直接传参调用执行:
5+6=11

 总结(非常重要,不得不看):

php中,函数的使用还是非常灵活的,但不论如何,函数,归根到底,还是一个处理过程。同时,也必须要有一个返回值,才能让用户感知它的存在,也及它的价值!

所以,函数总是当做一个值来使用,因此,不能出现在等号'='的左边,这就是函数与语言结构的最大区别。

例如,我们常说:echo()和list()是一个语言结构,不是一个函数,尽管看上去长得与函数一样,就是因为它们可以放在等号的左边,可以接受赋值。而函数不行。希望这篇文章,让你对函数有更深的理解~~

Atas ialah kandungan terperinci php函数的种类与调用方法大揭密. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:PHP预定义变量实例详解Artikel seterusnya:php中如何传递Session ID