PHP 展开运算符 (...) 使用笔记

具体应该会有小版本的差别,官方说的7.0就出了,但是 我这边phpstorm 提醒7,4以后才能用,具体还得查查相关资料

1. 概述

PHP 的展开运算符(...)是从 PHP 7.0 版本开始引入的功能。它允许在函数调用和数组定义中展开数组,使得代码更加简洁和易读。

2. 展开运算符的基本用法

2.1 函数调用中的展开运算符

在函数调用中,展开运算符可以将一个数组展开为函数的参数列表。

示例
php 复制代码
function sum(...$numbers) {
    return array_sum($numbers);
}

// 使用展开运算符传递数组
$values = [1, 2, 3, 4];
echo sum(...$values); // 输出 10

2.2 数组定义中的展开运算符

在数组定义中,展开运算符可以将一个数组的内容展开到另一个数组中。

示例
php 复制代码
$array1 = [1, 2, 3];
$array2 = [...$array1, 4, 5, 6];

print_r($array2);
// 输出: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

3. 高级用法

3.1 结合默认参数

展开运算符可以与函数的默认参数结合使用,使得函数调用更加灵活。

示例
php 复制代码
function greet($name, ...$greetings) {
    foreach ($greetings as $greeting) {
        echo "$greeting, $name!\n";
    }
}

$messages = ['Hello', 'Hi', 'Welcome'];
greet('Alice', ...$messages);
// 输出: 
// Hello, Alice!
// Hi, Alice!
// Welcome, Alice!

3.2 嵌套展开

展开运算符可以嵌套使用,以处理更复杂的数据结构。

示例
php 复制代码
$array1 = [1, 2, 3];
$array2 = [4, 5];
$array3 = [...$array1, ...$array2, 6, 7];

print_r($array3);
// 输出: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 )

4. 注意事项

  • 兼容性: 展开运算符仅在 PHP 7.0 及以上版本中可用。
  • 性能: 虽然展开运算符使得代码更加简洁,但在处理大量数据时,需要注意其对性能的影响。

5. 总结

展开运算符(...)是 PHP 7.0 引入的一个强大功能,使得函数调用和数组操作更加简洁和灵活。通过合理使用展开运算符,可以显著提高代码的可读性和维护性。

相关推荐
Marst Code21 分钟前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao1213136 分钟前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城2 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
@Mike@2 小时前
02-数据库学习笔记(SQL引擎)
数据库·笔记·学习
六点_dn2 小时前
RabbitMQ学习笔记-定义与作用
笔记·学习·rabbitmq
keyipatience3 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
我的xiaodoujiao3 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
weixin_408099673 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能
爱喝水的鱼丶4 小时前
SAP-ABAP:ALV通用封装实践——搭建可复用的ALV开发工具类,减少80%重复代码
开发语言·性能优化·sap·abap·erp·alv
脱胎换骨-军哥4 小时前
C++/Rust无缝互操作:混合系统新常态
开发语言·c++·rust