clean code cho if else 2
1. Giữ đơn giản, dễ đọc và sử dụng toán tử logic một cách hiệu quả:
- Tránh việc sử dụng các điều kiện lồng nhau phức tạp, có thể làm code trở nên khó hiểu
 - giúp giảm số lượng câu lệnh if-else và làm cho code ngắn gọn hơn
 
bad
if ($age >= 18 && $age <= 60) {
    if ($salary > 5000) {
        if ($position == "Manager") {
            // todo something
        }
    }
}
good
if ($age >= 18 && $age <= 60 && $salary > 5000 && $position == "Manager") {
    // todo something
}
2.Xử lý các trường hợp mặc định hoặc đặc biệt hiệu quả:
- thêm một câu lệnh else để xử lý các trường hợp không khớp với bất kỳ điều kiện if nào
 
bad
if ($day == "Monday") {
    // Làm việc từ 9:00 đến 17:00
} else {
    if ($day == "Tuesday") {
        // Làm việc từ 10:00 đến 18:00
    } else {
        // Nghỉ làm
    }
}
good
if ($day == "Monday") {
    // Làm việc từ 9:00 đến 17:00
} elseif ($day == "Tuesday") {
    // Làm việc từ 10:00 đến 18:00
} else {
    // Nghỉ làm
}
3.Sắp xếp các điều kiện một cách cẩn thận:
- Sắp xếp các điều kiện theo một thứ tự logic
 - Đặt các điều kiện thường xảy ra nhất hoặc đơn giản nhất đầu tiên để cải thiện hiệu suất thực thi của chương trình.
 
bad
function calculateGrade($score) {
    if ($score >= 90) {
        return 'A';
    } elseif ($score >= 80) {
        return 'B';
    } elseif ($score >= 70) {
        return 'C';
    } elseif ($score >= 60) {
        return 'D';
    } else {
        return 'F';
    }
}
good
function calculateGrade($score) {
    if ($score < 60) {
     return 'F';
    } else {
       if ($score >= 90) {
            return 'A';
        } elseif ($score >= 80) {
            return 'B';
        } elseif ($score >= 70) {
            return 'C';
        } else {
            return 'D';
        }
    }
}
4.Giảm thiểu sự trùng lặp code:
- Tránh việc trùng lặp code trong các khối if và else.
 - Nếu có các tác vụ hoặc thao tác chung, hãy tách ra thành các hàm hoặc biến riêng biệt để tránh lặp lại code
 
bad
if ($isLoggedIn) {
    // Hiển thị nút "Đăng xuất"
    echo '<a href="logout.php">Đăng xuất</a>';
    // Hiển thị chào mừng người dùng đã đăng nhập
    echo 'Chào mừng ' . $username;
} else {
    // Hiển thị nút "Đăng nhập"
    echo '<a href="login.php">Đăng nhập</a>';
    // Hiển thị chào mừng khách truy cập
    echo 'Chào mừng khách truy cập';
}
good
if ($isLoggedIn) {
    // Hiển thị nút "Đăng xuất"
    $buttonText = 'Đăng xuất';
    $buttonLink = 'logout.php';
    $welcomeMessage = 'Chào mừng ' . $username;
} else {
    // Hiển thị nút "Đăng nhập"
    $buttonText = 'Đăng nhập';
    $buttonLink = 'login.php';
    $welcomeMessage = 'Chào mừng khách truy cập';
}
echo '<a href="' . $buttonLink . '">' . $buttonText . '</a>';
echo $welcomeMessage;
5.early returns:
- Giảm độ sâu của khối if-else lồng nhau, làm cho code dễ đọc và hiểu hơn
 - Đưa ra các xử lý đặc biệt cho các trường hợp không hợp lệ sớm hơn, giúp tránh việc thực hiện các câu lệnh không cần thiết.
 
bad
function calculateDiscount($amount, $isPremiumMember) {
    if ($amount > 100) {
        if ($isPremiumMember) {
            return $amount * 0.2; // Giảm giá 20% cho thành viên Premium nếu tổng số tiền mua hàng vượt quá 100
        } else {
            return $amount * 0.1; // Giảm giá 10% cho thành viên không Premium nếu tổng số tiền mua hàng vượt quá 100
        }
    } else {
        return 0; // Không giảm giá nếu tổng số tiền mua hàng không vượt quá 100
    }
}
good
function calculateDiscount($amount, $isPremiumMember) {
    if ($amount <= 100) {
        return 0; // Không giảm giá nếu tổng số tiền mua hàng không vượt quá 100
    }
    if ($isPremiumMember) {
        return $amount * 0.2; // Giảm giá 20% cho thành viên Premium nếu tổng số tiền mua hàng vượt quá 100
    }
    return $amount * 0.1; // Giảm giá 10% cho thành viên không Premium nếu tổng số tiền mua hàng vượt quá 100
}