輸入值我想要的輸入Accpet頭「真」或「假」而已,所以我試圖用FILTER_VALIDATE_BOOLEAN
要做到這一點,虛假的FILTER_VALIDATE_BOOLEAN
if (!filter_var('false', FILTER_VALIDATE_BOOLEAN))
{
$error = true;
echo 'error';
}
呼應的錯誤信息,但它不應該。
我該怎麼做纔對?
輸入值我想要的輸入Accpet頭「真」或「假」而已,所以我試圖用FILTER_VALIDATE_BOOLEAN
要做到這一點,虛假的FILTER_VALIDATE_BOOLEAN
if (!filter_var('false', FILTER_VALIDATE_BOOLEAN))
{
$error = true;
echo 'error';
}
呼應的錯誤信息,但它不應該。
我該怎麼做纔對?
看一看手動
你的語法/用法是正確的。 filter_var('false', FILTER_VALIDATE_BOOLEAN)
但是不驗證模式,它將輸入字符串轉換爲相應的類型值。
,清楚:
var_dump(filter_var('false', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
返回布爾false
。
var_dump(filter_var('true', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
返回布爾true
。
var_dump(filter_var('wrong', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
返回NULL
。
這就是爲什麼我添加了第二個選項。輸入字符串既不分類爲true
也不false
。
所以你實際上必須檢查與=== NULL
爲您的條件。這會給你你想要的結果:
if (filter_var('false', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE) === NULL)
{
echo "Input did not evaluate to boolean 'false' nor 'true'"
''false''不是布爾值,它是一個字符串。 – BoltClock 2012-02-02 15:52:28
在這種情況下,'false'應該只是'false',否則它將被視爲一個字符串。 – Treffynnon 2012-02-02 16:05:34
它仍然返回錯誤信息與'假'... – laukok 2012-02-02 16:14:24