认识PHP函数

PHP最初是面向过程语言,有很多内置函数,比如处理字符串、处理数组的函数等。

除了内置函数,我们还需要了解如何自定义函数,函数一个可以实现功能复用的代买块。

一、函数定义

  function myFun($a,$b=2){
    echo "fun";
    return "函数定义";
  }

二、函数的参数

普通变量

function fun($a){

}

默认值得变量

myFun(a,b=2)

引用变量

    function fun(&$a){
      
    }

可变数量的参数列表

PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数 func_num_args(),func_get_arg(),和 func_get_args() 。

    <?php
    function sum(...$numbers) {
        $acc = 0;
        foreach ($numbers as $n) {
            $acc += $n;
        }
        return $acc;
    }
    function sum() {
        $acc = 0;
        foreach (func_get_args() as $n) {
            $acc += $n;
        }
        return $acc;
    }
    echo sum(1, 2, 3, 4);
    ?> 

三、返回值

return 可以返回包括数组和对象的任意类型。返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。

四、可变函数

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。

  <?php  
    function foo() {
        echo "In foo()<br />\n";
    }
    $func = 'foo';
    $func(); 
  ?>

五、匿名函数

匿名函数也叫闭包函数,允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)参数的值。

    <?php
      echo preg_replace_callback('~-([a-z])~', function ($match) {
          return strtoupper($match[1]);
      }, 'hello-world');
      $greet = function($name)
{
          printf("Hello %s\r\n", $name);
      };      
      $greet('World');
      $message = 'world';
      $example = function ($arg) use ($message) {
          var_dump($arg . ' ' . $message);
      };
      $example("hello");
    ?>

本文分享自微信公众号 - 老雷PHP全栈开发(L362606856),作者:雷日锦

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习PHP函数

    PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数 fun...

    老雷PHP全栈开发
  • PHP类与对象

    面向对象(Object Oriented,OO)其是以对象模型为基础进行的抽象过程,并在应用过程中形成了描述自己的抽象概念定义,包括对象、类、封装、继承以及多...

    老雷PHP全栈开发
  • Js基础教程之函数

    1.不在任何函数内定义的变量就具有全局作用域。实际上,JavaScript默认有一个全局对象window,全局作用域的变量实际上被绑定到window的一个属性。

    老雷PHP全栈开发
  • 学习PHP函数

    PHP 在用户自定义函数中支持可变数量的参数列表。在 PHP 5.6 及以上的版本中,由 ... 语法实现;在 PHP 5.5 及更早版本中,使用函数 fun...

    老雷PHP全栈开发
  • 理解JavaScript立即执行函数

    立即执行函数通常包含两种使用格式,具体使用那一种风格可以根据个人习惯和团队规范选择:

    伯爵
  • ES6--函数的扩展

    但上例中y对应的值如果是false的话,该赋值就不起作用了,例如y是''空字符串:

    Clearlove
  • 微生活时光机:去项目中挖掘JS模块化简史

    让我们把眼光投向微生活各个时期项目中的 JS 代码,看一看时代在其中投下的烙印,也许只是管中窥豹、走马观花,但通过其组织形式的异同,或可一瞥 JS 模块化层面的...

    江米小枣
  • JavaScript闭包与箭头函数

    用户1203875
  • Elasticsearch Javascript API增删改查

    查询 根据索引、类型、id进行查询: client.get({ index:'myindex', type:'mytype', ...

    用户1154259

扫码关注云+社区

领取腾讯云代金券