PHP 8 sử dụng ngoại lệ tích hợp sẵn mới là ValueError. PHP ném ngoại lệ này khi truyền giá trị cho hàm, giá trị có kiểu hợp lệ nhưng không thể dùng cho phép toán. Ở các phiên bản PHP trước, trường hợp này chỉ đưa ra Warning error, nhưng PHP 8 sẽ ném ValueError.
Ví dụ: ValueError trong PHP 8
<?php declare(strict_types=1); array_rand([1,2,3], 0); json_decode('{}', true, -1); ?>
Kết quả
Fatal error: Uncaught ValueError: array_rand(): Argument #1 ($array) cannot be empty
Ví dụ
<?php $x = strpos("h", "hello", 16); var_dump($x); ?>
Kết quả
bool(false)
Ví dụ: ValueError trong PHP 8
<?php $x = strpos("h", "hello", 16); var_dump($x); ?>
Kết quả
Fatal error: Uncaught ValueError: array_rand(): Argument #1 ($array) cannot be empty