Thử nghiệm beta của PHP 8 đã bắt đầu

giới thiệu bản phát hành beta đầu tiên của nhánh mới của ngôn ngữ lập trình PHP 8. Bản phát hành dự kiến ​​​​vào ngày 26 tháng 7.4.9. Đồng thời, các bản sửa lỗi của PHP 7.3.21, XNUMX và
7.2.33, loại bỏ các lỗi và lỗ hổng tích lũy.

Chính đổi mới PHP8:

  • Tăng sức mạnh Trình biên dịch JIT, việc sử dụng nó sẽ cải thiện năng suất.
  • Hỗ trợ các đối số của hàm được đặt tên, cho phép bạn truyền các giá trị cho hàm liên quan đến tên, tức là. Bạn có thể truyền các đối số theo bất kỳ thứ tự nào và xác định các đối số tùy chọn. Ví dụ: "array_fill(start_index: 0, num: 100, value: 50)".
  • Khi gọi các phương thức cho phép bằng cách sử dụng toán tử “?”, cho phép bạn bắt đầu cuộc gọi chỉ khi có phương thức này, điều này tránh được việc kiểm tra không cần thiết để trả về giá trị “null”. Ví dụ: "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Hỗ trợ các loại công đoàn, xác định các bộ sưu tập gồm hai loại trở lên (ví dụ: “public function foo(Foo|Bar $input): int|float;”).
  • Hỗ trợ thuộc tính (chú thích) cho phép bạn liên kết siêu dữ liệu (chẳng hạn như thông tin loại) với các lớp mà không cần sử dụng cú pháp Docblock.
  • Hỗ trợ biểu thức phù hợp với, không giống như switch, có thể trả về các giá trị, hỗ trợ các điều kiện kết hợp, sử dụng các so sánh loại nghiêm ngặt và không yêu cầu đặc tả “break”.

    $kết quả = trận đấu($input) {
    0 => "xin chào",
    '1', '2', '3' => “thế giới”,
    };

  • Cú pháp rút gọn định nghĩa lớp, cho phép bạn kết hợp định nghĩa của hàm tạo và các thuộc tính.
  • Kiểu trả về mới - tĩnh.
  • Kiểu mới - hỗn hợp, có thể được sử dụng để xác định xem một hàm có chấp nhận các tham số thuộc các loại khác nhau hay không.
  • Biểu thức quăng để xử lý các trường hợp ngoại lệ.
  • Bản đồ yếu để tạo các đối tượng có thể bị hy sinh trong quá trình thu gom rác (ví dụ: để lưu trữ các bộ đệm không cần thiết).
  • Cơ hội sử dụng biểu thức “::class” cho các đối tượng (tương tự như gọi get_class()).
  • Cơ hội các định nghĩa trong khối bắt các ngoại lệ không bị ràng buộc với các biến.
  • Cơ hội để lại dấu phẩy sau phần tử cuối cùng trong danh sách tham số hàm.
  • Giao diện mới Có thể xâu chuỗi để xác định bất kỳ loại chuỗi hoặc dữ liệu nào có thể được chuyển đổi thành chuỗi (có sẵn phương thức __toString()).
  • Tính năng mới str_contains(), một dạng tương tự đơn giản của strpos để xác định sự xuất hiện của chuỗi con, cũng như các hàm str_starts_with() và str_ends_with() để kiểm tra sự trùng khớp ở đầu và cuối chuỗi.
  • Đã thêm chức năng fdiv(), thực hiện phép chia mà không gây ra lỗi khi chia cho XNUMX.
  • Đã thay đổi logic nối chuỗi. Ví dụ: biểu thức 'echo "sum:" . $a + $b' trước đây được hiểu là 'echo ("sum: " . $a) + $b' và trong PHP 8 sẽ được coi là 'echo "sum: " . ($a + $b)'.
  • Siết chặt kiểm tra các phép toán số học và bit, ví dụ: các biểu thức "[] % [42]" và "$object + 4" sẽ dẫn đến lỗi.
  • thực hiện một thuật toán sắp xếp ổn định trong đó thứ tự của các giá trị giống hệt nhau được giữ nguyên qua các lần chạy khác nhau.
  • Nguồn: opennet.ru

Thêm một lời nhận xét