Top

Giới thiệu toán tử hợp nhất Null (Null Coalescing Operator) trong PHP 7

Chắc hẳn trong quá trình code PHP bạn sẽ gặp những trường hợp cần kiểm tra sự tồn tại của một biến mà bạn sẽ phải sẽ sử dụng hàm isset. Nó sẽ có kiểu giống như thế này.

$nguyen = isset($_GET['username']) ? $_GET['username'] : null;

Nhìn nó khá dài dòng một chút thì phải. Vì thế kể từ phiên bản PHP 7 đã có một cách để bạn viết nó ngắn gọn lại hơn nó sẽ giống như thế này.

$nguyen = $_GET['username'] ?? $_POST['username'] : 'Username không tồn tại';

Cách viết trên này nó sẽ kiểm tra biến $_GET['username'] xem có tồn tại không và giá trị là khác NULL tương tự như sử dụng isset nếu tồn tại và có giá trị thì sẽ lấy giá trị của $_GET['username'] còn ngược lại thì sẽ in ra Username không tồn tại.

Còn một trường hợp khác trong PHP 7 cũng giống như ở trên nhưng sử dụng kí tự ?:

Ủa vậy thì nó khác nhau ở chỗ nào nhỉ. Đầu tiên mình cho bạn xem một ví dụ sử dụng nó:

$nguyen = $_GET['username'] ?: $_POST['username'] : 'Username không tồn tại';

Vậy giữa ?:?? khác nhau chỗ nào?

Thực ra thì cơ chế của nó giống như nhau nhưng nếu sử dụng ?: thì nó sẽ quăng ra một lỗi PHP Notice nếu như biến bạn kiểm tra không được xác định hoặc không tồn tại. Còn ?? thì không có lỗi mà nó sẽ vẫn lấy luôn giá trị ở vế thứ 2 và trả về kết quả.

Mong rằng kiến thức này nó sẽ hữu ích cho bạn trong quá trình code PHP.

Author: Nguyên Ary

Bình Luận

avatar
  
smilegrinwinkmrgreenneutraltwistedarrowshockunamusedcooleviloopsrazzrollcryeeklolmadsadexclamationquestionideahmmbegwhewchucklesillyenvyshutmouth