スイッチと preg_match ケースに問題があります。コードは次のようになります
switch( $WORD ){
case ( preg_match("/^(?:.+-)?(\d+?)$/i", $WORD , $ID ) ? true : false ):
echo "valid ". $ID ." test -> " .preg_match("/^(?:.+-)?(\d+?)$/i", $WORD );
break;
default:
echo $WORD;
break;
}
これらのコードは
$WORD = "TEST"; print => TEST
$WORD = "TEST-1"; print => valid 1 test -> 1
$WORD = "TEST-2552"; print => valid 2552 test -> 1
$WORD = "343"; print => valid 343 test -> 1
ただし、$WORD
null または$WORD = ""
ケースも true の場合は印刷されます
$WORD = ""; print => valid test -> 0
どうすれば修正できますか?私は試してみました
case ( ( preg_match("/^(?:.+-)?(\d+?)$/i", $WORD , $ID ) == 1 ) ? true : false ):
しかし、うまくいきません