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()等就可以找到我们传入的参数的个数和值。