PHP函数

在PHP中,函数是代码块,他可以执行特定任务并返回结果。函数一般会包含:函数名、参数以及返回值等。

自定义函数

内置函数只能满足某些特定的场景,大部分时候我们会根据功能区自定义函数。

#示例

php 复制代码
<?php
    function sum($a, $b) {
        return $a + $b;
    }
    echo sum(1, 3);

执行结果

php 复制代码
4

函数名是sum,它有两个参数以及一个返回值。

可变函数

在PHP中,可变函数是值通过变量的值来动态调用函数。如果变量后面带有括号,则会去查找是否有跟变量值相同的函数名,如果有则会调用该函数。

#示例

php 复制代码
<?php
    function sum($a, $b) {
        return $a + $b;
    }

    function test($c) {
        return $c(2, 3);
    }
    echo test('sum');

执行结果

php 复制代码
5

内置函数

PHP内置了大量的函数供开发者使用,极大的方便了业务逻辑的处理。有些函数是可以直接使用的,有些则需要编译特定的PHP扩展模块才能使用。下面介绍几个内置函数。

#示例(sort() 对数组升序排序)

php 复制代码
<?php
   $a = [3, 5, 1, 4, 2];
   sort($a);
   var_dump($a);

执行结果

php 复制代码
array(5) {
  [0]=>
  int(1)
  [1]=>
  int(2)
  [2]=>
  int(3)
  [3]=>
  int(4)
  [4]=>
  int(5)
}

#示例(array_shift()--删除数组中的第一个元素)

php 复制代码
<?php
   $a = [3, 5, 1, 4, 2];
   array_shift($a);
   var_dump($a);

执行结果

php 复制代码
array(4) {
  [0]=>
  int(5)
  [1]=>
  int(1)
  [2]=>
  int(4)
  [3]=>
  int(2)
}

匿名函数

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

#示例

php 复制代码
<?php
    //定义
   $a = function () {
     echo "这里是匿名函数" . PHP_EOL;
   };
   $a();

   //往匿名函数传值
    $name = "test";
    $b = function () use ($name) {
        echo $name;
    };
    $b();

执行结果

php 复制代码
这里是匿名函数
test

匿名函数中使用外部的变量,需要使用use结构去传参。

箭头函数

箭头函数是PHP7.4的新语法,是一种更简洁的匿名函数写法。

#示例--基本用法

php 复制代码
<?php
   $b = 5;
   $sum = fn($a) => $a + $b;
   var_dump($sum(1));

其实就相当于

php 复制代码
<?php
    $sum = function ($a) use ($b) {
     return $a + $b;
   };

执行结果

php 复制代码
int(6)

完结

如果你在阅读这篇文章时有所收获,请不要忘记点赞评论加关注,你的支持是我创作的最大动力。当然,如果你在文中发现了疏漏之处,或是有着其他的见解,欢迎私信与我交流。

我是老卢,一个热爱分享、不断探索的知识旅者。

相关推荐
wanghowie16 小时前
01.05 Java基础篇|I/O、NIO 与序列化实战
java·开发语言·nio
电商API&Tina17 小时前
跨境电商速卖通(AliExpress)数据采集与 API 接口接入全方案
大数据·开发语言·前端·数据库·人工智能·python
黎雁·泠崖17 小时前
指针收官篇:sizeof/strlen + 指针运算笔试考点全梳理
c语言·开发语言
APIshop17 小时前
Java 爬虫 1688 评论 API 接口实战解析
java·开发语言·爬虫
凯子坚持 c17 小时前
Qt 5.14.0 入门框架开发全流程深度解析
开发语言·qt
lingran__17 小时前
数据在内存中的存储详解(C语言拓展版)
c语言·开发语言
编程乐学(Arfan开发工程师)17 小时前
信息收集与分析详解:渗透测试的侦察兵 (CISP-PTE 核心技能)
java·开发语言·javascript·python
bugcome_com17 小时前
深入解析 C# 中 int? 与 int 的核心区别:可空值类型的本质与最佳实践
开发语言·c#
superman超哥17 小时前
仓颉语言中异常处理入门的深度剖析与工程实践
c语言·开发语言·c++·python·仓颉
m0_4856146717 小时前
Docker基础
docker·容器·php