Categories
PHP

PHP 8 新特性: Nullsafe 操作符(空安全)

PHP 8 新增了 Nullsafe 操作符(空安全):?->,顾名思义,以一种安全的方式操作可能为 null 的对象。以此可以简化对于 null 值的逻辑判断。 准备 我们先准备一些类和实例。如下: 以往实现 不严谨的程序员,想获取 user1 的 total 信息时,可能会直接取值。如下: 当然,程序会直接报错: 有点经验的程序员这么做(实际会经常这么做): 当然,实际中还需要对 fanInfo 等做一系列判断,也可能无法避免一些嵌套的判断。 Nullsafe 实现 现在有了 Nullsafe 操作符,我们可以直接这样用: 输出结果: 当然 user1 为 null 时,表达式直接返回了 null,且不再会调用属性 fanInfo 和后续操作。下面详细介绍求值策略。 短路求值策略 Nullsafe 操作符遵循的是完全短路(Full Short Circuiting)的求值策略。 举例说明: 当 a 为 null 时,方法 b 不会被调用,$foo 被赋值为 null。 当 a 为 null […]