15) { continue; } $e164 = '+' . $digits; $is_ru = (strlen($digits) === 11 && $digits[0] === '7'); return [ 'e164' => $e164, 'pretty' => self::format_pretty($e164, $is_ru), 'is_russian' => $is_ru, ]; } return null; } private static function format_pretty(string $e164, bool $is_ru): string { if ($is_ru) { // +7 XXX XXX-XX-XX → "+7 (XXX) XXX-XX-XX" $d = substr($e164, 2); return sprintf( '+7 (%s) %s-%s-%s', substr($d, 0, 3), substr($d, 3, 3), substr($d, 6, 2), substr($d, 8, 2) ); } return $e164; } }