为什么这个数组的第一个元素不会在php中显示?

I have an array containing the months of a year with a switch statement and a while loop but it won't show the first element of the array which is January. Can someone please help me fix this issue?

$calendar = array (January, February, March, April, May, June, July, August, September, October, November, December);
while($e < sizeof($calendar)) {

$k++;
$days = 30;
$days2 = 31;
switch ($calendar[$e]) {

    case  $calendar[0]:
    echo "Month ",$k,": $calendar[$e] has $days days <br>";
    break;
    case  $calendar[1]:
    echo "Month $k: $calendar[$e] has 28 or 29 days <br>";
    break;
    case  $calendar[2]:
    echo "Month $k: $calendar[$e] has $days2 days <br>";
    break;
    case  $calendar[3]:
    echo "Month $k: $calendar[$e] has $days days <br>";
    break;
    case  $calendar[4]:
    echo "Month $k: $calendar[$e] has $days days <br>";
    break;
    case  $calendar[5]:
    echo "Month $k: $calendar[$e] has $days days <br>";
    break;
    case  $calendar[6]:
    echo "Month $k: $calendar[$e] has $days2 days <br>";
    break;
    case  $calendar[7]:
    echo "Month $k: $calendar[$e] has $days days <br>";
    break;
    case  $calendar[8]:
    echo "Month $k: $calendar[$e] has $days days <br>";
    break;
    case  $calendar[9]:
    echo "Month $k: $calendar[$e] has $days2 days <br>";
    break;
    case  $calendar[10]:
    echo "Month $k: $calendar[$e] has $days days <br>";
    break;
    case  $calendar[11]:
    echo "Month $k: $calendar[$e] has $days2 days <br>";
    break;

    }
    $e++;
}

As mentioned in the comments, you don't define $e before using it. As you can see it gives unpredictable results. Setting it works as expected.

See it in action.

If you don't mind, please use calendar function cal_days_in_month():

$year = 2013
$arr_month_name = cal_info(0)['months'];
for ($month=1; $month < 12; $month+=1) {
    $days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
    echo "Month $month: $arr_month_name[$month] has $days days <br/>";
}