Trait 类似于类,但仅用于以细粒度和一致的方式对函数进行分组,它是对传统继承的补充,可以实现行为的横向组合,类成员应用不需要继承。
- <?php
- trait ezcReflectionReturnInfo {
- function getReturnType() { /*1*/ }
- function getReturnDescription() { /*2*/ }
- }
-
- class ezcReflectionMethod extends ReflectionMethod {
- use ezcReflectionReturnInfo;
- /* ... */
- }
-
- class ezcReflectionFunction extends ReflectionFunction {
- use ezcReflectionReturnInfo;
- /* ... */
- }
- ?>
属性类型化,类变量可以定义类型,比如:
- class A
- {
- public string $name;
-
- public Foo $foo;
- }
扩展运算符,这是一种新语法,可以直接在调用中解压缩参数,比如:
- call_user_func_array([$db, 'query'], array_merge(array($query), $params));
直接用新语法可扩展出数组 $params:
- $db->query($query, ...$params);
- JIT compiler:PHP 8 确认支持 JIT
JIT 是一种编译器策略,它将代码表述为一种中间状态,在运行时将其转换为依赖于体系结构的机器码,并即时执行。在 PHP 中,这意味着 JIT 将为 Zend VM 生成的指令视为中间表述,并以依赖于体系结构的机器码执行,也就是说托管代码的不再是 Zend VM,而是更为底层的 CPU。
Foreign Function Interface,外部函数接口,它允许从纯脚本语言调用 C 函数、使用 C 数据类型,从而更有效地开发“系统代码”。对于 PHP,FFI 开辟了一种使用纯 PHP 编写 PHP 扩展和绑定到 C 库的方法。
匿名类,用于创建简单的一次性对象:
- <?php
-
- // Pre PHP 7 code
- class Logger
- {
- public function log($msg)
- {
- echo $msg;
- }
- }
-
- $util->setLogger(new Logger());
-
- // PHP 7+ code
- $util->setLogger(new class {
- public function log($msg)
- {
- echo $msg;
- }
- });
声明返回类型:
- <?php
- function sum($a, $b): float {
- return $a + $b;
- }
-
- // Note that a float will be returned.
- var_dump(sum(1, 2));
- ?>
严格模式:
- <?php
- declare(strict_types=1);
-
- function sum($a, $b): int {
- return $a + $b;
- }
-
- var_dump(sum(1, 2));
- var_dump(sum(1, 2.5));
- ?>
- Contemporary cryptography
使 Libsodium 成为核心扩展,Libsodium 是一个现代加密库,由安全专家精心选择的加密算法组成,以避免侧信道漏洞。
生成器,提供了一种简单、无样板实现迭代器的方法。
各种开发工具在过去几年中已经成熟,并且保持增长
最后一部分,作者分析了当前 PHP 开发工具也在不断成熟,并且保持增长。 (编辑:PHP编程网 - 黄冈站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|