tôi đã sắp xếp một số mã cũ khi tôi stumbled khi một cấu trúc tương tự như sau:Thay NẾU với một biểu thức logic trong PHP
// function bar() returns a value
// if the value is an instance of customException class, terminate with error code
// else process the regular data
$foo = bar();
checkForException($foo) && exit($foo->errorCode());
process($foo);
Bây giờ lạ như nó có vẻ, đây là ngắn hơn rất nhiều sau đó
$foo=bar();
if(checkForException($foo)) {
exit($foo->errorCode();
}
else {
process($foo);
}
Và phần nào dễ đọc hơn (ít nhất là sau sự ngạc nhiên ban đầu) sau đó
$foo=bar();
(checkForException($foo)) ? exit($foo->errorCode()) : process($foo);
trong khi mã ngắn hơn không nhất thiết có nghĩa là mã dễ đọc hơn, tôi thấy điều này ở đâu đó ở giữa hai cách "chuẩn" ở trên.
Nói cách khác, thay vì
if($foo) {
bar();
}
else {
// there is no real reason for this to exist, since
// I have nothing to write here, but I want to conform
// to the general coding practices and my coding OCD
}
Người ta có thể chỉ đơn giản là viết
$foo && bar();
Vì vậy, lý do đằng sau này sử dụng nhiều không nhìn thấy là những gì? Nó có thể đơn giản như là "Đừng sáng tạo lại bánh xe, viết dễ đọc hơn nếu/người khác, và nếu bạn thực sự muốn rút ngắn nó, đó là những gì nhà điều hành ternary là dành cho"?
EDIT: Hãy nhớ rằng mã trên đã nhanh chóng được lấy từ mã gốc và có nghĩa là chỉ là một ví dụ về việc sử dụng mã "ngắn mạch". Nếu bạn có thể, vui lòng hạn chế đề xuất cải tiến mã, vì đó không phải là kết quả mong muốn của câu hỏi.
Ví dụ số 2
userCheckedTheBox($user) && displayAppropriateInfo();
Trong khuôn khổ có cấu trúc, bạn sẽ không sử dụng 'thoát' nhiều. Bên cạnh đó, một 'if/else' đầy đủ cho phép bạn sử dụng nhiều lệnh trong nhánh' else' - anyways đôi khi ngắn mạch rất hữu ích, chỉ cần không lạm dụng nó. – moonwave99
Tại sao nó nên "lạ" (như trong "lạ như nó có vẻ") mà ít ký tự ngắn hơn nhiều ký tự? Bạn phải sống một cuộc sống được che chở. –
"Vậy lý do đằng sau việc này không thấy nhiều việc sử dụng là gì?" --- bởi vì có nhiều loại lập trình viên khác nhau: một số viết mã "cool", khác - dễ hỗ trợ. – zerkms