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

  • 相关阅读:
    再谈TextField
    IOS-TextField知多少
    leftBarButtonItems
    LeftBarButtonItems,定制导航栏返回按钮
    Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法 Apple Mach-O Linker (id) Error "_OBJC_CLASS...错误解决办法
    Unrecognized Selector Sent to Instance问题之诱敌深入关门打狗解决办法
    UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
    Present ViewController,模态详解
    UILABEL AUTOLAYOUT自动换行 版本区别
    iOS自动布局解决警告Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/8545917.html
Copyright © 2011-2022 走看看