Hướng dẫn enum php 8 - php 8

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.

Chủ Đề