スイッチと 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
ただし、$WORDnull または$WORD = ""ケースも true の場合は印刷されます
$WORD = "";      print => valid  test -> 0
どうすれば修正できますか?私は試してみました
case ( ( preg_match("/^(?:.+-)?(\d+?)$/i",  $WORD , $ID ) == 1 )  ? true : false ):
しかし、うまくいきません