zoukankan      html  css  js  c++  java
  • 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()等就可以找到我们传入的参数的个数和值。

  • 相关阅读:
    [LeetCode] 875. Koko Eating Bananas 科科吃香蕉
    [LeetCode] 874. Walking Robot Simulation 走路机器人仿真
    [LeetCode] 995. Minimum Number of K Consecutive Bit Flips 连续K位翻转的最小次数
    [LeetCode] 873. Length of Longest Fibonacci Subsequence 最长的斐波那契序列长度
    [LeetCode] 872. Leaf-Similar Trees 叶结点相似的树
    [LeetCode] 870. Advantage Shuffle 优势洗牌
    [LeetCode] 869. Reordered Power of 2 重新排序为2的倍数
    [LeetCode] 868. Binary Gap 二进制间隙
    [LeetCode] 867. Transpose Matrix 转置矩阵
    [LeetCode] 866. Prime Palindrome 质数回文数
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8545917.html
Copyright © 2011-2022 走看看