Tôi gặp vấn đề với nhà điều hành ternary PHP, kể từ PHP phiên bản 5.3 bạn có thể thay thế các nhà điều hành ternary viết tắt với một phiên bản thậm chí ngắn hơnphong cách mới hơn PHP hành ternary đã không mong muốn kết quả với chức năng isset
// Older version
$route = isset($test) ? $test : 'test is NOT set';
// Newer version as of 5.3
$route = isset($test) ?: 'test is NOT set';
Bây giờ trên phiên bản mới hơn, nếu $test
không được đặt. nó hoạt động tốt. Tuy nhiên, khi được đặt bởi phương thức isset()
, nó sẽ trả lại true
hoặc 1
thay vì giá trị.
Tôi có phải sử dụng phương pháp còn lớn tuổi để có được $route
để bằng giá trị của $test
thay vì một giá trị boolean của 1
?
Bạn có thể sử dụng '$ route = $ test?: 'Test is NOT set';' thay vào đó. – FtDRbwLXw6
Nếu bạn không phiền các thông báo lỗi, bạn vẫn có thể sử dụng viết tắt. Nó không phải là cách 'đúng' hoặc 'đẹp' để làm điều đó, nhưng vẫn hoạt động - $ route = @ $ test?: 'Test is NOT set'; –