How can the use of inline styles be replaced with CSS classes for styling a PHP-generated calendar table?

When styling a PHP-generated calendar table, the use of inline styles can be replaced with CSS classes for better organization and maintainability. By defining CSS classes for different elements within the calendar table, you can easily apply consistent styling across multiple tables or pages. This also separates the presentation from the logic, making the code cleaner and more readable.

<?php
// PHP code to generate a calendar table with CSS classes for styling

// Define CSS classes for different elements
$monthHeaderClass = "month-header";
$dayOfWeekClass = "day-of-week";
$dayCellClass = "day-cell";
$todayClass = "today";

// Generate the calendar table with CSS classes
echo '<table>';
echo '<tr class="' . $monthHeaderClass . '"><th colspan="7">January 2023</th></tr>';
echo '<tr class="' . $dayOfWeekClass . '"><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>';
for ($i = 1; $i <= 31; $i++) {
    if ($i % 7 == 1) {
        echo '<tr>';
    }
    $class = ($i == date('j')) ? $todayClass : $dayCellClass;
    echo '<td class="' . $class . '">' . $i . '</td>';
    if ($i % 7 == 0) {
        echo '</tr>';
    }
}
echo '</table>';
?>