Kỳ vọng là một cải tiến tương thích ngược với hàm assert() cũ hơn. Kỳ vọng cho phép các khẳng định không tốn chi phí trong mã sản xuất và cung cấp khả năng ném ra các ngoại lệ tùy chỉnh khi khẳng định thất bại.
assert() hiện nay là một cấu trúc ngôn ngữ, trong đó tham số đầu tiên là một biểu thức so với việc là một chuỗi hoặc giá trị Boolean để được kiểm tra.
Bảng dưới đây liệt kê các chỉ thị cấu hình cho hàm assert() −
Directive | Default value | Possible values |
---|---|---|
zend.assertions | 1 | 1 − generate and execute code (development mode) 0 − generate code but jump around it at runtime -1 − do not generate code (production mode) |
assert.exception | 0 | 1 − throw, when the assertion fails, either by throwing the object provided as the exception or by throwing a new AssertionError object if exception was not provided. 0 − use or generate a Throwable as described above, but only generates a warning based on that object rather than throwing it (compatible with PHP 5 behaviour) |
Assertion − Câu khẳng định. Trong PHP 5, điều này phải là một chuỗi để được đánh giá hoặc một giá trị Boolean để được kiểm tra. Trong PHP 7, điều này cũng có thể là bất kỳ biểu thức nào trả về một giá trị, sẽ được thực thi và kết quả được sử dụng để chỉ ra liệu câu khẳng định có thành công hay không.
Description − Một mô tả tùy chọn sẽ được bao gồm trong thông báo lỗi, nếu phép kiểm tra không thành công.
Exception − Trong PHP 7, tham số thứ hai có thể là một đối tượng Throwable thay vì một chuỗi mô tả, trong trường hợp này đây là đối tượng sẽ bị ném ra nếu phép kiểm tra thất bại và chỉ thị cấu hình assert.exception được bật.
FALSE nếu điều kiện khẳng định là sai, TRUE nếu ngược lại.
Hãy xem xét ví dụ sau −
<?php ini_set('assert.exception', 1); class CustomError extends AssertionError {} assert(false, new CustomError('Custom Error Message!')); ?>
Nó sẽ tạo ra output −
PHP Fatal error: Uncaught CustomError: Custom Error Message! In test.php:6