Trong PHP, nếu không có gì được thực hiện trong một hàm và kết thúc được đạt đến, nó sẽ như thể nó trả về false. Bởi vì điều này không bao giờ cần thiết để trả về false nếu không có gì khác được thực thi bên trong hàm. Điều này làm chúng tôi với điều này:
function test($val = 'a') {
if($val == 'a') {
return true;
}
}
Nếu chỉ có một lệnh sau câu lệnh if, elseif nếu không, các dấu ngoặc ("{" "}") là không cần thiết, mà làm cho chúng ta kết thúc với điều này :
function test($val = 'a') {
if($val == 'a') return true;
}
Trong PHP bạn thực sự có thể trả về so sánh, sẽ được thực hiện ngay trước khi trả lại. Đây là những gì một số người khác đã trả lời bài đăng này được đề xuất. Việc làm này lại cho chúng tôi với mã này:
function test($val = 'a') {
return ($val == 'a');
}
Đúng sẽ được trả lại nếu khối "($ val == 'a')" là đúng, nếu không sai sẽ được trả lại, vì nó không đúng sự thật. Logic.
Tôi thực sự có xu hướng sử dụng quy ước thứ hai mà tôi đã trình bày, chỉ vì thói quen. Nhìn thấy vẻ đẹp của sự đơn giản của thứ ba được trình bày bởi những người khác tôi có thể sẽ chuyển sang điều đó khi áp dụng.
EDIT:
Nếu bạn muốn viết mã đó là dễ dàng hơn cho các chuyên gia phi PHP để hiểu, thay thế khác có thể như sau:
function test($val = 'a') {
if($val == 'a')
return true;
else
return false;
}
Tôi muốn nói rằng không sử dụng niềng răng trong các trường hợp như được mô tả trong ví dụ thứ hai của tôi cung cấp cho bạn mã dễ đọc hơn, vì các dấu ngoặc có xu hướng làm cho mã của bạn trông lộn xộn nếu chúng không chứa nhiều hàng.
Điều gì xảy ra nếu khối khác có nhiều dòng và tôi đoán là một phần của đệ quy? Điều này cảm thấy một chút bối rối với tôi (không thể định dạng mã một cách chính xác trong các bình luận?): 'Private Node deleteMin (Node x) { nếu (x.left == null) return x.right; x.left = deleteMin (x.left); x.N = kích thước (x.left) + kích thước (x.right) + 1; trả lại x; } ' – allanx2000