命名参数
php7
1 | htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'UTF-8', false); |
php8
1 | htmlspecialchars($string, double_encode: false); |
- 只指定必需参数,跳过可选参数。
- 参数是独立于顺序并且是自描述的。
demo
1 | class Test { |
Match 表达式
php7
1 | switch (8.0) { |
php8
1 | echo match (8.0) { |
match 类似于 switch,具有如下特性:
- match 为表达式,意味着其结果可以存储在变量中或用于返回。
- match 分支仅支持单行表达式,同时不需要 break; 语句。
- match 使用严格比较。
Nullsafe 操作符
php7
1 | $country = null; |
php8
1 | $country = $session?->user?->getAddress()?->country; |
可使用 nullsafe
操作符完成链式调用来代替 null
的验证。当对链中的一个元素求值失败时,整个链的执行将中止,整个链的求值为 null
。
新类、接口、和函数
New Classes, Interfaces, and Functions·
- Weak Map 类
- Stringable 接口
- str_contains(), str_starts_with(), str_ends_with()
- fdiv()
- get_debug_type()
- get_resource_id()
- token_get_all() 对象实现
- New DOM Traversal and Manipulation APIs