前提・実現したいこと
現在、PHPで問題を解いています。
干支を返す関数を作る問題なのですが、マイナスやピリオドが含まれているときはエラーを出したいです。
本来は、西暦としてありえないマイナスや小数点が含まれていた際にエラーを出したいのですが、
現状はマイナス、小数点だけでなく西暦として成り立つ数字で入力してもエラーになってしまいます。
ご教授していただければ幸いです。
PHP
1<?php 2function toEtoString(int $seireki): string 3{ 4 try { 5 $list12 = array("申", "酉", "戌", "亥", "子", "丑", "寅", "卯", "辰", "巳", "午", "未"); 6 7 $num12 = $seireki - floor($seireki / 12) * 12; 8 9 $zyunishi = $list12[$num12]; 10 $search = '/-|./'; 11 if(preg_match($search, $seireki)){ 12 throw new Exception(''); 13 } 14 return (string)$zyunishi; 15 16 } catch (Exception $e) { 17 return 'error'; 18 } 19} 20print_r(toEtoString(2000)); 21?>
試したこと
preg_matchの部分で-(マイナス)、.(ピリオド)をそのまま一つで指定すればerrorと出る様になり、西暦として成り立つ数字でも干支をちゃんと返します。
if(preg_match('/-/', $seireki)) or if(preg_match('/./', $seireki))
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。