数字代码的性能明显更好 。
“典型” PHP Web应用程序代码的性能略好 。
将更多代码从C转移到PHP的潜力,因为PHP现在已经足够快了 。”
因此,尽管JIT几乎不会给WordPress性能带来巨大的改善,但它将把PHP升级到一个新的水平,从而使它成为一种可以直接编写许多功能的语言 。
不过,JIT的引入将会导致更大的复杂性,它可能导致维护,稳定性和调试成本增加 。
PHP 8改进和新功能除了JIT之外,还值得期望的PHP 8新功能和改进还有很多,它们将使PHP更加可靠和高效 。
构造器属性增强关于如何改进PHP中的对象人体工程学的持续讨论的结果是,构造器属性增强RFC提出了一种新的,更简洁的语法,该语法将简化属性声明,使其更短,更少冗余 。
该提议仅与提升的参数有关,即以public,protected和private可见性关键字为前缀的那些方法参数 。
目前所有属性必须重复几次(至少四次),然后才能将其与对象一起使用 。下面是一个RFC的示例:
文章插图
文章插图
class Point {
public int $x;
public int $y;
public int $z;
public function __construct(
int $x = 0,
int $y = 0,
int $z = 0,
) {
$this->x = $x;
$this->y = $y;
$this->z = $z;
}
}
从PHP 8开始,将有一种更有用的声明参数的方法,上述代码可以简单写为:
文章插图
文章插图
class Point {
public function __construct(
public int $x = 0,
public int $y = 0,
public int $z = 0,
) {}
}
对比可以看出,新的属性语法更易读且不易出错 。
抽象Trait方法验证Trait是一种在单一继承语言中代码重用的机制 。通常,它们用于声明可在多个类中使用的方法 。
特征也可以包含抽象方法 。这些方法只是声明方法的签名,但是方法的实现必须使用trait在类中完成 。
trait T {
abstract public function test(int $x);
}
class C {
use T;
public function test(string $x) {}
}
如果实现方法与抽象特征方法不兼容,将会抛出致命错误:
Fatal error: Declaration of C::test(string $x) must be compatible with T::test(int $x) in /path/to/your/test.php on line 10
不兼容的方法签名在PHP中,由于方法签名不兼容而导致的继承错误会引发致命错误或警告,具体取决于导致错误的原因 。
如果类正在实现接口,则不兼容的方法签名将引发致命错误 。根据对象接口文档:
实现接口的类必须使用与LSP(Liskov替换原理)兼容的方法签名 。不这样做将导致致命错误 。下面是一个带接口的继承错误的示例:
interface I {
public function method(array $a);
}
class C implements I {
public function method(int $a) {}
}
在PHP 7.4中,上面的代码将引发以下错误:
Fatal error: Declaration of C::method(int $a) must be compatible with I::method(array $a) in /path/to/your/test.php on line 7
子类中具有不兼容签名的函数将引发警告 。
class C1 {
public function method(array $a) {}
}
class C2 extends C1 {
public function method(int $a) {}
}
在PHP 7.4中,上面的代码只会发出警告:
Warning: Declaration of C2::method(int $a) should be compatible with C1::method(array $a) in /path/to/your/test.php on line 7
在PHP 8,都会抛出致命错误 。
Fatal error: Declaration of C2::method(int $a) must be compatible with C1::method(array $a) in /path/to/your/test.php on line 7
经验总结扩展阅读
- 2020年11月开始施行 交通违法记分罚款有重大调整
- 常见的SEM面试题及最佳答案 sem面试技巧
- 乒乓球底板用什么木做最好
- 裙装 优雅女人到底是什么样子?裙装和头发的细节,最能证明一切
- 下雨天怎么发朋友圈表示一下心情2022最新
- 女孩起名大全2020最新版
- 2020年属鼠新生宝宝取名字大全
- 2020年鼠年女孩取名用字技巧
- 2020年属鼠男孩寓意好的名字
- 2020年属鼠男孩怎样起名字