PHP で true/false スイッチを検証しようとしています。ユーザー入力は、「true」、「1」、「on」、または「yes」にすることができます。さらに、大文字と小文字を区別しない必要があります。正規表現が「1」と「on」でしか機能しないのはなぜですか?
test.php:
define("REGEXP_TRUE", '#/true|1|on|yes/i#');
echo preg_match( REGEXP_TRUE, "true" );
echo "\n".preg_match( REGEXP_TRUE, "1" );
echo "\n".preg_match( REGEXP_TRUE, "on" );
echo "\n".preg_match( REGEXP_TRUE, "yes" )."\n";
出力:
[mles@worker]$ ./bin/php test.php
0
1
1
0