微信扫一扫打赏支持

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,那么这时我们在函数里面输出这个变量,将不会报错。

 

代码

 1 <?php
 2 // function text(){
 3 
 4 // }
 5 // text();
 6 $str = function (){
 7     echo '这里是匿名函数';
 8 };
 9 $str();
10 echo '<hr/>';
11 $str1 = function ($usernaem){
12     echo '这里是有参数的匿名函数';
13     echo $usernaem;
14 };
15 $str1('Clive');
16 echo '<hr/>';
17 $str2 = function ($username){
18     return $username;
19 };
20 echo $str2('51zxw');
21 echo '<hr/>';
22 
23 /*
24  *  func_num_args()
25      func_get_arg()
26      func_get_args()
27  * */
28 function text(){
29     echo func_num_args();
30     echo '<hr/>';
31     echo func_get_arg(0);
32     echo '<hr/>';
33     print_r(func_get_args());
34     
35 }
36 text('clive','12312','成都');

11、就是普通的匿名函数的方式,和Java里面区别有一点

29、fun_num_args获取传入参数的个数,fun_get_arg(0)获取第0个参数

 

 

总结:

1、匿名函数就是只有function没有函数名的函数,我们直接把函数赋值给一个变量,然后用这个变量来操作这个函数就好,很像JS的写法

2、可变参数的形势就是很多时候参数的个数和别的都不能确定,所以没有办法在函数体里面直接写死,所以我们在函数体里面不写,然后调用函数的时候我们照传,然后在函数体里面通过fun_num_args()等就可以找到我们传入的参数的个数和值。

 

posted @ 2018-03-11 21:01  范仁义  阅读(250)  评论(0编辑  收藏  举报