Ném PHP

Trước PHP 8. 0, nó không được phép đưa ra một ngoại lệ khi một biểu thức được mong đợi. Bây giờ có thể đưa ra một ngoại lệ trong các hàm mũi tên, biểu thức bậc ba hoặc bất kỳ nơi nào khác mà trình phân tích cú pháp PHP mong đợi một biểu thức duy nhất

Hàm mũi tên

$fn = fn[] => throw new \Exception['oops'];

biểu thức bậc ba

$value = isset[$_GET['value']]
    ? $_GET['value']
    : throw new \InvalidArgumentException['value not set'];

$value ??= throw new \InvalidArgumentException['value not set'];

$foo = $bar ?: throw new \InvalidArgumentException['$bar is falsy'];

$foo = $bar ?? throw new \InvalidArgumentException['$bar is not set'];

Tất cả các đoạn trên đều được cho phép kể từ PHP 8. 0

Các phiên bản trước 8. 0 gây ra lỗi phân tích cú pháp

Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...

Tác động tương thích ngược

Việc sử dụng

Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
3 trong một biểu thức trước đây đã gây ra lỗi phân tích cú pháp, do đó sẽ không có thay đổi vi phạm thực tế nào khi bạn nâng cấp lên PHP 8

Tuy nhiên, lưu ý rằng không có cách nào để làm cho bất kỳ mã nào mà

Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
3 trong một biểu thức hoạt động trơn tru trong các phiên bản PHP trước PHP 8. Nếu khả năng tương thích với các phiên bản cũ hơn là một mối lo ngại, hãy ngừng sử dụng
Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
3 trong các biểu thức

Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu chi tiết về lớp Exception và cách ném một ngoại lệ mới trong PHP

Giới thiệu về lớp Ngoại lệ

Khi gặp một tình huống mà bạn không thể phục hồi, bạn có thể ném một ngoại lệ

Một ngoại lệ là một thể hiện của lớp

Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
6. Giống như các đối tượng PHP khác, bạn sử dụng từ khóa
Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
7 để tạo một thể hiện của lớp
Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
6

Một đối tượng

Parse error: syntax error, unexpected 'throw' [T_THROW] in .. on line ...
6 có hai thuộc tính chính. một tin nhắn và một mã số. Thông báo mô tả ngoại lệ. Mã số là tùy chọn, chỉ định ngữ cảnh cho một ngoại lệ cụ thể

Khi bạn tạo một ngoại lệ mới, bạn cung cấp cho thông báo mã số tùy chọn. Ví dụ

Chủ Đề