php函数的种类与调用方法大揭密
PHP中的函数看上去很简单,实际上功能非常强大,我这里按函数名称是否固定,可以分为以下三大类:
一、名称固定的函数:
这类函数,也叫:常规函数,直接用关键字function来创建,也是大家最熟悉的类型,例如:
<?php
//1按名调用:最直接和普通的方式
echo '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()是一个语言结构,不是一个函数,尽管看上去长得与函数一样,就是因为它们可以放在等号的左边,可以接受赋值。而函数不行。希望这篇文章,让你对函数有更深的理解~~
php函数的种类与调用方法大揭密的更多相关文章
- JavaScript函数的4种调用方法详解
在JavaScript中,函数是一等公民,函数在JavaScript中是一个数据类型,而非像C#或其他描述性语言那样仅仅作为一个模块来使用.函数有四种调用模式,分别是:函数调用形式.方法调用形式.构造 ...
- JavaScript 函数的4种调用方法
JavaScript 函数有 4 种调用方式. 每种方式的不同方式在于 this 的初始化. 作为一个函数调用 function myFunction(a, b) { return a * b; } ...
- JS函数的定义与调用方法
JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来 ...
- 【转】JS函数的定义与调用方法
JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来 ...
- ASP程序加密/解密方法大揭密
如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的 ...
- C#如何用IL和Emit类通过Calli来实现实例函数与静态函数的调用
一. 介绍 最近充能看书,在书上看到函数调用可以 " 通过 ldftn 获得函数指针,然后使用 calli 指令 " 来进行调用,并说这种行为 " 类似 C 的函数指针, ...
- phpcms 的实用相关接口,函数,调用方法
常用函数 , 打开include/global.func.php,下面存放一些公共函数view plaincopy to clipboardprint? strip_tags() 调用内容过滤html ...
- 模式识别 - libsvm该函数的调用方法 详细说明
libsvm该函数的调用方法 详细说明 本文地址: http://blog.csdn.net/caroline_wendy/article/details/26261173 须要载入(load)SVM ...
- jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法
jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法 在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...
随机推荐
- WP8.1小梦词典开发2:百度翻译API使用
原文出自:http://www.bcmeng.com/api2/ 小梦昨天和大家分享了WP8.1金山词霸API使用方法,今天继续分享windows phone 8.1中百度翻译API的使用方法.和昨天 ...
- java学习笔记 --- 面向对象
一.对象和类 类(class):类是用于描述现实事物的,它将现实事物进行抽象化,模板化描述.将事物的特点(属性)和行为封装在其中.比如小汽车的图纸,图纸就是小汽车的模版.图纸上画着小汽车的各种特点和功 ...
- nfs mount:reason given by server: Permission denied
遇到nfs mount的问题,以前从未遇到过,问题出的很奇怪,现象是 mount: 10.1.10.22:/cicro failed, reason given by server: Permissi ...
- 初识 Javascript.02 -- Date日期、Math对象、数据类型转换、字符串、布尔Boolean、逻辑运算符、if else 、三元表达式、代码调试方法、
Date()对象: Date对象用于处理日期和时间. 1.1 Math对象 ◆Math.ceil() 天花板函数 向上取整 只取整数,不足则进1 ◆Math.floor() 地板函数 ...
- SocketServer模块
在利用select实现伪并发的socket博文中我们说了: 如果要实现一个server端可以和多个客户端进行通信可以使用 1.多线程 2.多进程 3.select I/O多路复用 在那篇博文中我们介绍 ...
- Windbg调试中遇到的问题
1.找不到符号文件 抓取完Dump后,打开WinDbg,Ctrl+D找到刚才抓取的Dump文件,报如下异常: *** ERROR: Symbol file could not be found. De ...
- lumen 中的 .env 配置文件简介和适用场景
lumen 是 laravel 的衍生品,核心功能的使用和 laravel 都是一致的,但配置文件这一方面,lumen 在 laravel 的基础上增加了更简便的配置方式: lumen 采用了 Dot ...
- Hibernate基础学习(六)—Hibernate二级缓存
一.概述 Session的缓存是一块内存空间,在这个内存空间存放了相互关联的Java对象,这个位于Session缓存内的对象也被称为持久化对象,Session负责根据持久化对象的状态来同步更 ...
- 关于IE兼容问题
针对IE6/7/8 可以分为两种模式:怪异模式(Quirks mode)和标准模式(Standards mode),在IE6以下版本下显示怪异模式,border和padding都包含在width中使用 ...
- transform-origin 的定位
transform-origin接受两个参数,它们可以是百分比,em,px等具体的值,也可以是left,center,right,或者 top,center,bottom等描述性参数,第一个参数表示X ...