php 7.1 新特性解析
php 7.1 新特性解析
返回值和传入参数可以指定为 null
<?php function testReturn(): ?string { return 'elePHPant'; } var_dump(testReturn()); // 此处返回值如果没有问号,那么不能返回 null 值 function testReturn(): ?string { return null; } var_dump(testReturn()); // 参数类型提示为 ?string 代表可以传入一个 null 类型和 string 类型的值,但是不能不传值 function test(?string $name) { var_dump($name); } test('elePHPant'); test(null); test();
void 函数
function swap(&$left, &$right) : void // 在函数定义时,可以将 void 作为返回值类型,并且不能返回 null
短数组语法解析数组元素
<?php // 可以使用 [] 短数组语法代替 list $data = [ [2, 'b', 'B'], [3, 'c', 'C'], ]; // list 可以解析数组的每个元素 foreach ($data as list($id, $lower, $upper)) { echo $id.$lower.$upper.PHP_EOL; } // 7.1 中可以使用两个中括号解析数组,当做 list 来用 foreach ($data as [$id, $lower, $upper]) { echo $id.$lower.$upper.PHP_EOL; } // list 支持自定义键名, 并且只能使用自定义键名进行赋值,无法自动按照顺序进行赋值 $data = [ ["id" => 1, "lower" => 'a', 'upper' => 'A'], ]; // data 中 lower 的值赋值给 $id1 ["lower" => $id1, "id" => $name1] = $data[0];
类常量可见性
<?php class ConstDemo { const PUBLIC_CONST_A = 1; // 默认还是 public 的 public const PUBLIC_CONST_B = 2; // php7.1之前不允许设置可见性(封装特性) protected const PROTECTED_CONST = 3; private const PRIVATE_CONST = 4; }
iterable 伪类
这个类可以用在参数或者返回值中。并且这个类型的参数或者返回值可以迭代(使用 foreach 遍历元素)
<?php function iterator(iterable $iter) { foreach ($iter as $val) { // } }
多异常捕获
<?php try { // some code } catch (FirstException | SecondException $e) { // 处理多个异常不用为多个异常写多个 catch // handle first and second exceptions }
支持为负的字符串偏移量
就是所有的字符串函数偏移量都可以为负数,负数表示偏移量从字符串的最后一位往前数
ext/openssl 支持 AEAD
AEAD 是一个加密标准
[AEAD算法浅析](http://tcca.crypto.cn/thread.aspx?ID=2839 )
HTTP/2 server push support in ext/curl
当用户的浏览器和服务器在建立链接后,服务器主动将一些资源推送给浏览器并缓存起来,这样当浏览器接下来请求这些资源时就直接从缓存中读取,不会在从服务器上拉了,提升了速率。
参考:
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/10647869.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)