0, 'mon' => 1, 'tue' => 1 << 1, 'wed' => 1 << 2, 'thu' => 1 << 3, 'fri' => 1 << 4, 'sat' => 1 << 5, 'sun' => 1 << 6, ]; } protected static function labels(): array { return [ 'none' => __('None'), 'mon' => __('Monday'), 'tue' => __('Tuesday'), 'wed' => __('Wednesday'), 'thu' => __('Thursday'), 'fri' => __('Friday'), 'sat' => __('Saturday'), 'sun' => __('Sunday') ]; } public function __toString(): string { return (string)$this->label; } /** * Checks if days contain this day * * @param int $days * @return boolean */ public function has(int $days) { return (bool)($this->value & $days); } }