Hôm qua [26/11/2021], PHP 8.1 đã được release với một loạt các tính năng mới như: enum, read only roperty, fibers,... và cải thiệt rất nhiều về mặt hiệu năng.
Nội dung chính
- 1. Enumerations.
- 2. Readonly Properties.
- 3. First-class Callable.
- 4. Initializers.
- 5. Pure Intersection Type.
- 6. Nerver return type.
- 7. Final class constants.
- 9. Array unpacking - hỗ trợ mảng bất tuần tự.
- 10. Cải tiến về mặt hiệu năng.
Bài viết này mình sẽ liệu kê ra một số feature mới nổi bật trong PHP 8.1
1. Enumerations.
2. Readonly Properties.
3. First-class Callable.
4. Initializers.: PHP < 8.1
class Status
{
const DRAFT = 'draft';
const PUBLISHED = 'published';
const ARCHIVED = 'archived';
}
function acceptStatus[string $status] {...}
5. Pure Intersection Type.
enum Status
{
case Draft;
case Published;
case Archived;
}
function acceptStatus[Status $status] {...}
6. Nerver return type.
7. Final class constants.
9. Array unpacking - hỗ trợ mảng bất tuần tự.
10. Cải tiến về mặt hiệu năng.
Bài viết này mình sẽ liệu kê ra một số feature mới nổi bật trong PHP 8.1: định nghĩa thuộc tính
enum Status
{
case Draft;
case Published;
case Archived;
}
function acceptStatus[Status $status] {...}
9 là readonly.class BlogData
{
public readonly Status $status;
}
Nếu như các bạn đã từng sử dụng các ngôn ngữ khác như:
enum Status
{
case Draft;
case Published;
case Archived;
}
function acceptStatus[Status $status] {...}
4, enum Status
{
case Draft;
case Published;
case Archived;
}
function acceptStatus[Status $status] {...}
5,... thì chắc hẳn các bạn cũng biết đến enum Status
{
case Draft;
case Published;
case Archived;
}
function acceptStatus[Status $status] {...}
6 rồi.class BlogData
{
public readonly Status $status;
public function __construct[Status $status]
{
$this->status = $status;
}
}
3. First-class Callable.
4. Initializers.
5. Pure Intersection Type.: Đối với PHP < 8.1
class Foo
{
public function bar[]: string
{
return 'bar method';
}
}
$bar = [new Foo[], 'bar'];
$bar[]; // bar method
$fn = Closure::fromCallable['strlen'];
$fn["ABC"]; // 3
6. Nerver return type.