php匿名函数和可变参数函数
php匿名函数和可变参数函数
简介
直接上代码了:
<?php
$test1 = function($value)
{
echo $value;
};
$test1('HelloWorld');
?>
不懂你们有没有一种感觉,看见了js?近视的我,看到了function 就以为js…
好了,你看看最开始,是不是一个test1变量右边一个赋值符号,然后赋值符号(=号)的右边是一个函数?这个函数接收一个参数value,那么这个就是匿名函数,我们使用的时候直接用test1就OK了。
我们函数里面的内容是输出我们参数,我们使用test1传入参数‘HelloWorld’我们运行以下,发现输出了HelloWrold
如果我们要使用这个匿名函数之外的变量,如以下代码,我们要使用use语言结构:
<?php
$n=1;
$test1 = function($value)use ($n)
{
echo $value.' and '.$n;
};
$test1('HelloWorld');
?>
我们的n变量是在function的外部,如果我们要在function的内部使用这个变量的话我们需要使用use结构,就是在function后面传参括号的后面使用一个use然后一个圆括号里面加上我们要使用的变量$n,那么这时我们在函数里面输出这个变量,将不会报错。
代码
<?php
// function text(){ // }
// text();
$str = function (){
echo '这里是匿名函数';
};
$str();
echo '<hr/>';
$str1 = function ($usernaem){
echo '这里是有参数的匿名函数';
echo $usernaem;
};
$str1('Clive');
echo '<hr/>';
$str2 = function ($username){
return $username;
};
echo $str2('51zxw');
echo '<hr/>'; /*
* func_num_args()
func_get_arg()
func_get_args()
* */
function text(){
echo func_num_args();
echo '<hr/>';
echo func_get_arg(0);
echo '<hr/>';
print_r(func_get_args()); }
text('clive','12312','成都');

11、就是普通的匿名函数的方式,和Java里面区别有一点
29、fun_num_args获取传入参数的个数,fun_get_arg(0)获取第0个参数
总结:
1、匿名函数就是只有function没有函数名的函数,我们直接把函数赋值给一个变量,然后用这个变量来操作这个函数就好,很像JS的写法
2、可变参数的形势就是很多时候参数的个数和别的都不能确定,所以没有办法在函数体里面直接写死,所以我们在函数体里面不写,然后调用函数的时候我们照传,然后在函数体里面通过fun_num_args()等就可以找到我们传入的参数的个数和值。
php匿名函数和可变参数函数的更多相关文章
- Swift开发第十篇——可变参数函数&初始化方法顺序
本篇分为两部分: 一.Swift中的可变参数函数 二.初始化方法的顺序 一.Swift中的可变参数函数 可变参数函数指的是可以接受任意多个参数的函数,在 OC 中,拼接字符串的函数就属于可变参数函数 ...
- 【Java学习笔记】函数的可变参数
package p2; public class ParamterDemo { public static void main(String[] args) { int sum1 = add(4,5) ...
- C语言学习020:可变参数函数
顾名思义,可变参数函数就是参数数量可变的函数,即函数的参数数量是不确定的,比如方法getnumbertotal()我们即可以传递一个参数,也可以传递5个.6个参数 #include <stdio ...
- C语言中可变参数函数实现原理
C函数调用的栈结构 可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈.例如,对于函数: void fu ...
- C可变参数函数 实现
转自:http://blog.csdn.net/weiwangchao_/article/details/4857567 C函数要在程序中用到以下这些宏: void va_start( va_list ...
- C语言可变参数函数实现原理
一.可变参数函数实现原理 C函数调用的栈结构: 可变参数函数的实现与函数调用的栈结构密切相关,正常情况下C的函数参数入栈规则为__stdcall, 它是从右到左的,即函数中的最右边的参数最先入栈. 本 ...
- c可变参数函数
C函数要在程序中用到以下这些宏: <pre lang="c" escaped="true">void va_start( va_list arg_p ...
- 【转】C/C++中可变参数函数的实现
转自:http://www.cnblogs.com/cylee025/archive/2011/05/23/2054792.html 在C语言的stdarg.h头文件中提供了三个函数va_start, ...
- PHP中的可变参数函数和可选参数函数
1)可选参数函数.例如: <?phpfunction add($var1,$var2,$var3=0,$var4=0){ return$var1+$var2+$var3+$var4;}echo ...
随机推荐
- VirtualBox 5.1.14 获取VirtualBox COM对象错误
Oracle VM VirtualBox 5.1.14 安装完成之后显示错误, Failed to instantiate CLSID_VirtualBox w/ IVirtualBox, but C ...
- A - Vile Grasshoppers
Problem description The weather is fine today and hence it's high time to climb the nearby pine and ...
- How to solve a login problem of SQL Server?
Sometimes when we attempting to login the SQL Server 20xx Management Studio, when we type in the cor ...
- 用户注册登录验证 多版本集合 + hashlib加密
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/5/6 0006 12:22# @Author : Anthony.Waa# @S ...
- jQuery动画知识总结
jQuery动画概述 我们之前实现的下拉菜单的案例,是没有动画效果的,但是在日常开发中,动画效果是经常会用到的,所以我们可以尝试使用jQuery动画,将下拉菜单案例实现的更动感一些. jQuery提供 ...
- Bin文件
那什么是bin文件呢?为什么这么关键? bin (binary)既是:二进制, 里面存放的一般是可执行的二进制文件.二进制即是机器代码,汇编语言编译后的结果.我们编译的是高级语言,把高级语言翻译为机器 ...
- 使用postman模拟登录请求
Cookie 可以写在Headers里面
- IAAS: IT公司去IOE-Alibaba系统构架解读
从Hadoop到自主研发,技术解读阿里去IOE后的系统架构 原地址:...................... 云计算阿里飞天 摘要:从IOE时代,到Hadoop与飞天并行,再到飞天单集群5000节 ...
- Find Bugs
为什么没有早点知道有这么好用的插件呢?
- CSV文件模块的使用
---恢复内容开始--- 1.CSV模块使用流程 1.导入模块 impport CSV 2.打开文件(xxx.csv) with open('xxx.csv','a',encoding='utf-8' ...