Rumah >tajuk utama >php7.0函数种类与调用方法总结

php7.0函数种类与调用方法总结

PHP中文网
PHP中文网asal
2017-07-28 15:26:342465semak imbas

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

一、名称固定的函数:

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

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

执行返回:

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

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

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

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

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

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

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

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

执行返回:

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

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

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

执行返回:

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

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

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

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

执行返回:

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

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

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

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

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

文章来源:http://peter.php.cn/blog/detail/188.html 

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