Là null ternary điều hành php?

Khi tôi đang làm việc trên một dự án PHP, tôi đã bắt gặp hai ký hiệu đó là ???: và nhận ra rằng không phải lúc nào cũng rõ ràng để xác định khi nào sử dụng ký hiệu này so với ký hiệu kia. Đó là một ứng cử viên tốt cho một bài đăng trên blog

Mặc dù các toán tử đó không mới nhưng chúng không được sử dụng thường xuyên, vì vậy hãy cố gắng làm sáng tỏ chúng

Họ rút ngắn những gì?

Hai toán tử này cung cấp cách viết mã ngắn gọn hơn và rút ngắn các biểu thức được sử dụng trong PHP

?? is same as [ !isset[] || is_null[] ]

if [ ! $x ] { echo $x; } else { echo $y; } to echo $x ?: $y

Về cơ bản, toán tử này sẽ trả về giá trị không NULL đầu tiên. Cấu trúc này sẽ trả về $value1 nếu nó không phải là NULL hoặc $value2

Trong PHP 7, một tính năng mới, toán tử hợp nhất null [??] đã được giới thiệu. Nó được sử dụng để thay thế hoạt động bậc ba kết hợp với hàm isset[]. Toán tử hợp nhất Null trả về toán hạng đầu tiên của nó nếu nó tồn tại và không phải là NULL;

Thí dụ

"];

   // Equivalent code using ternary operator
   $username = isset[$_GET['username']] ? $_GET['username'] : 'not passed';
   print[$username];
   print["
"]; // Chaining ?? operation $username = $_GET['username'] ?? $_POST['username'] ?? 'not passed'; print[$username]; ?>

Nó tạo ra đầu ra trình duyệt sau -

not passed
not passed
not passed

Trong bài học này, chúng ta sẽ sử dụng lập trình để cố gắng giải câu đố Use Ternary Operator As Null Coalescing Operator In Php. Mã hiển thị dưới đây chứng minh điều này

Chủ Đề