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)

完结

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

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

相关推荐
星火开发设计5 小时前
C++ 数组:一维数组的定义、遍历与常见操作
java·开发语言·数据结构·c++·学习·数组·知识
TTGGGFF5 小时前
控制系统建模仿真(一):掌握控制系统设计的 MAD 流程与 MATLAB 基础运算
开发语言·matlab
2501_944424125 小时前
Flutter for OpenHarmony游戏集合App实战之贪吃蛇食物生成
android·开发语言·flutter·游戏·harmonyos
Lhuu(重开版6 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
仙俊红7 小时前
Java Map 家族核心解析
java·开发语言
浅念-7 小时前
C语言小知识——指针(3)
c语言·开发语言·c++·经验分享·笔记·学习·算法
白狐_7988 小时前
【计网全栈通关】第 5 篇:网络层核心计算——IP 地址规划、子网划分与 CIDR
网络协议·tcp/ip·php
code_li8 小时前
聊聊支付宝架构
java·开发语言·架构
少控科技8 小时前
QT高阶日记01
开发语言·qt
无限进步_9 小时前
【C++】大数相加算法详解:从字符串加法到内存布局的思考
开发语言·c++·windows·git·算法·github·visual studio