大家好,我是yangyang.记录一点php8知识.
特性JIT (Just In Time) 编译器:这是PHP 8.0的最大改进,可以显著提升PHP的性能。命名参数:这使得你可以只通过参数名来通报值,而不须要考虑参数在函数中的顺序。Attributes(或者叫Annotations):这是一种在代码中添加元数据的新办法。布局函数属性提升:这许可你在一个步骤中声明类属性和布局函数。Match表达式:这是一个可以返回值的switch语句。Nullsafe操作符:这使得你可以在链式调用中安全地调用可能为null的方法或属性。联合类型:这许可你在函数参数和返回值中声明多种可能的类型。更严格的类型系统:PHP 8.0在类型系统方面进行了许多改进,包括更严格的类型检讨和新的类型(如稠浊类型)。新的字符串函数:PHP 8.0添加了一些新的字符串处理函数,如str_contains、str_starts_with和str_ends_with。非常处理的改进:PHP 8.0对非常处理进行了一些改进,包括一些新的非常类和更好的缺点。以上只是PHP 8.0的一部分新特性,更详细的列表息争释可以在PHP官方网站上找到。
phpfunction foo($a, $b, $c) { / ... / }// 在PHP 8.0之前,你须要按照参数的顺序通报值foo(1, 2, 3);// 在PHP 8.0,你可以通过参数名来通报值foo(a: 1, b: 2, c: 3);
Attributes:
php// 在PHP 8.0,你可以利用Attributes来添加元数据#[MyAttribute]class Foo { / ... / }
布局函数属性提升:
php// 在PHP 8.0之前,你须要在布局函数中手动赋值class Foo { public function __construct( private Bar $bar, ) { / ... / }}// 在PHP 8.0,你可以直接在布局函数中声明属性class Foo { public function __construct( private Bar $bar, ) {}}
Match表达式:
php// 在PHP 8.0,你可以利用match表达式$result = match($input) { 'foo' => "It's foo", 'bar' => "It's bar", default => "It's something else",};
Nullsafe操作符:
php// 在PHP 8.0之前,你须要检讨nullif ($foo !== null && $foo->bar() !== null) { $result = $foo->bar()->baz();}// 在PHP 8.0,你可以利用nullsafe操作符$result = $foo?->bar()?->baz();
联合类型:
php// 在PHP 8.0,你可以在函数参数和返回值中声明多种可能的类型function foo(Bar|Baz $input): int|float { / ... / }
新的字符串函数:
php// 在PHP 8.0,你可以利用新的字符串函数if (str_contains($haystack, $needle)) { / ... / }if (str_starts_with($haystack, $needle)) { / ... / }if (str_ends_with($haystack, $needle)) { / ... / }
