original_string: public static function calInfo($calendar_id)
      {
          switch ($calendar_id) {
              case CAL_FRENCH:
                  return self::calInfoCalendar(self::$MONTH_NAMES_FRENCH, self::$MONTH_NAMES_FRENCH, 30, 'French', 'CAL_FRENCH');
  
              case CAL_GREGORIAN:
                  return self::calInfoCalendar(self::$MONTH_NAMES, self::$MONTH_NAMES_SHORT, 31, 'Gregorian', 'CAL_GREGORIAN');
  
              case CAL_JEWISH:
                  $months = self::shouldEmulateBug54254() ? self::$MONTH_NAMES_JEWISH_54254 : self::$MONTH_NAMES_JEWISH_LEAP_YEAR;
  
                  return self::calInfoCalendar($months, $months, 30, 'Jewish', 'CAL_JEWISH');
  
              case CAL_JULIAN:
                  return self::calInfoCalendar(self::$MONTH_NAMES, self::$MONTH_NAMES_SHORT, 31, 'Julian', 'CAL_JULIAN');
  
              case -1:
                  return array(
                  CAL_GREGORIAN => self::calInfo(CAL_GREGORIAN),
                  CAL_JULIAN    => self::calInfo(CAL_JULIAN),
                  CAL_JEWISH    => self::calInfo(CAL_JEWISH),
                  CAL_FRENCH    => self::calInfo(CAL_FRENCH),
              );
  
              default:
                  return trigger_error('invalid calendar ID ' . $calendar_id, E_USER_WARNING);
          }
      }
code: public static function calInfo($calendar_id)
      {
          switch ($calendar_id) {
              case CAL_FRENCH:
                  return self::calInfoCalendar(self::$MONTH_NAMES_FRENCH, self::$MONTH_NAMES_FRENCH, 30, 'French', 'CAL_FRENCH');
  
              case CAL_GREGORIAN:
                  return self::calInfoCalendar(self::$MONTH_NAMES, self::$MONTH_NAMES_SHORT, 31, 'Gregorian', 'CAL_GREGORIAN');
  
              case CAL_JEWISH:
                  $months = self::shouldEmulateBug54254() ? self::$MONTH_NAMES_JEWISH_54254 : self::$MONTH_NAMES_JEWISH_LEAP_YEAR;
  
                  return self::calInfoCalendar($months, $months, 30, 'Jewish', 'CAL_JEWISH');
  
              case CAL_JULIAN:
                  return self::calInfoCalendar(self::$MONTH_NAMES, self::$MONTH_NAMES_SHORT, 31, 'Julian', 'CAL_JULIAN');
  
              case -1:
                  return array(
                  CAL_GREGORIAN => self::calInfo(CAL_GREGORIAN),
                  CAL_JULIAN    => self::calInfo(CAL_JULIAN),
                  CAL_JEWISH    => self::calInfo(CAL_JEWISH),
                  CAL_FRENCH    => self::calInfo(CAL_FRENCH),
              );
  
              default:
                  return trigger_error('invalid calendar ID ' . $calendar_id, E_USER_WARNING);
          }
      }
code_tokens: public static function calInfo ( $ calendar_id ) { switch ( $ calendar_id ) { case CAL_FRENCH : return self :: calInfoCalendar ( self :: $ MONTH_NAMES_FRENCH , self :: $ MONTH_NAMES_FRENCH , 30 , 'French' , 'CAL_FRENCH' ) ; case CAL_GREGORIAN : return self :: calInfoCalendar ( self :: $ MONTH_NAMES , self :: $ MONTH_NAMES_SHORT , 31 , 'Gregorian' , 'CAL_GREGORIAN' ) ; case CAL_JEWISH : $ months = self :: shouldEmulateBug54254 ( ) ? self :: $ MONTH_NAMES_JEWISH_54254 : self :: $ MONTH_NAMES_JEWISH_LEAP_YEAR ; return self :: calInfoCalendar ( $ months , $ months , 30 , 'Jewish' , 'CAL_JEWISH' ) ; case CAL_JULIAN : return self :: calInfoCalendar ( self :: $ MONTH_NAMES , self :: $ MONTH_NAMES_SHORT , 31 , 'Julian' , 'CAL_JULIAN' ) ; case - 1 : return array ( CAL_GREGORIAN => self :: calInfo ( CAL_GREGORIAN ) , CAL_JULIAN => self :: calInfo ( CAL_JULIAN ) , CAL_JEWISH => self :: calInfo ( CAL_JEWISH ) , CAL_FRENCH => self :: calInfo ( CAL_FRENCH ) , ) ; default : return trigger_error ( 'invalid calendar ID ' . $ calendar_id , E_USER_WARNING ) ; } }
docstring: Returns information about a particular calendar.
  
  Shim implementation of cal_info()
  
  @link https://php.net/cal_info
  
  @param int $calendar_id
  
  @return array|bool
docstring_tokens: Returns information about a particular calendar .