algolia search

Tìm thấy x bài viết trong xms.

Tóm tắt: có gì mới trong PHP 8.3?


Đây là bài tóm tắt siêu ngắn từ nguồn bài viết https://stitcher.io/blog/new-in-php-83 

PHP 8.3 có những cập nhật mới sau:

  1. Readonly properties: Cho phép khởi tạo lại thuộc tính readonly khi clone.
    readonly class Post
    {
        public function __construct(
            public DateTime $createdAt,
        ) {}
        
        public function __clone()
        {
            $this->createdAt = new DateTime(); // Cho phép mặc dù `createdAt` là thuộc tính chỉ đọc
        }
    }​
  2. Typed class constants: Cho phép khai báo kiểu cho hằng số trong class.
    class Foo
    {
        const string BAR = 'baz'; 
    } ​
  3. #[Override] attribute: Dùng để chỉ định phương thức ghi đè.
    abstract class Parent
    {
        public function sampleMethod(): int
        {
            return 1;
        }
    }
    
    final class Child extends Parent
    {
        #[Override]
        public function sampleMethod(): int
        {
            return 2; // The overridden method
        }
    }​
    Tức là cho biết Child->sampleMethod đang ghi đè Parent->sampleMethod nếu bạn đổi tên Parent->sampleMethodNew thì lúc này Child->sampleMethod sẽ phát hiện ra nó không ghi đè lên phương thức nào cả, lỗi sẽ xảy ra.
  4. Negative indices in arrays: Cải tiến xử lý chỉ số âm trong mảng.
    $array = [];
    
    $array[-5] = 'a';
    $array[] = 'b';
    
    // Kết quả trước php8.3
    // array (
    //  -5 => 'a',
    //  0 => 'b',
    //)
    
    // Kết quả ở php8.3
    // array (
    //  -5 => 'a',
    //  -4 => 'b',
    //)​
  5. Anonymous readonly classes: Hỗ trợ đánh dấu các lớp vô danh là readonly.
    $class = new readonly class {
        public function __construct(
            public string $foo = 'bar',
        ) {}
    };​
  6. json_validate() function: Kiểm tra tính hợp lệ của JSON mà không cần giải mã.
    json_validate(string $json, int $depth = 512, int $flags = 0): bool​


  7. Truy xuất hằng số một cách động.
    class Foo 
    {
        const BAR = 'bar';
    }
    
    $name = 'BAR';
    
    Foo::{$name};​
  8. Hàm mb_str_pad()

Link chi tiết: stitcher.io.

Đánh giá bài viết

Thích thì like
Tóm tắt: có gì mới trong PHP 8.3?
5/5 1 votes

Bình luận

Hiển thị bình luận Facebook