PHPで文字列をブール値(boolean)に変換する方法
PHPで文字列をブール値(boolean)に変換するには、filter_var()関数にFILTER_VALIDATE_BOOLEANフィルターを指定します。このフィルターを使えば、「1」「true」「on」「yes」など真偽値として解釈できる文字列を、適切にtrueまたはfalseへ変換できます。
filter_var()を使った変換例
以下は、日付文字列に対してFILTER_VALIDATE_BOOLEANを適用した例です。
<?php
echo "日曜日を週の最初の日として表示します...\n";
$res = date('l - d/m/Y', strtotime("sunday 0 week"));
echo "最初の日(翌週) = ", $res."\n";
var_dump(filter_var($res, FILTER_VALIDATE_BOOLEAN));
?>
実行結果
Displaying Sunday as first day of a week... First day (next week) = Sunday - 15/12/2019 bool(false)
上記の出力では、日付形式の文字列はブール値として解釈できないため、結果はfalseとなっています。つまり、FILTER_VALIDATE_BOOLEANは「真偽値として意味を持つ文字列」以外をすべてfalseと判定するのです。
さまざまな文字列での変換結果
次に、代表的な文字列がどのように変換されるかを確認してみましょう。
<?php
var_dump(filter_var('0', FILTER_VALIDATE_BOOLEAN));
var_dump(filter_var('1', FILTER_VALIDATE_BOOLEAN));
var_dump(filter_var('-0', FILTER_VALIDATE_BOOLEAN));
var_dump(filter_var('', FILTER_VALIDATE_BOOLEAN));
?>
実行結果
bool(false) bool(true) bool(false) bool(false)
この結果から、「'1'」だけがtrueに変換され、「'0'」「'-0'」「''(空文字列)」はいずれもfalseに変換されることがわかります。
FILTER_VALIDATE_BOOLEANの変換ルールまとめ
- trueになる値:「1」「true」「on」「yes」
- falseになる値:「0」「false」「off」「no」「''(空文字列)」およびその他の解釈できない文字列
- nullを返したい場合:「FILTER_NULL_ON_FAILURE」フラグを組み合わせると、解釈できない値に対してnullを返すことができます
文字列の内容によって挙動が異なるため、ユーザー入力やフォームのチェックボックスの値などを安全にブール値へ変換したい場合に、filter_var()とFILTER_VALIDATE_BOOLEANの組み合わせは非常に便利です。型の曖昧さによる予期しないバグを防ぐためにも、明示的なフィルター処理を心がけましょう。
-
JavaScriptで文字列を真偽値(Boolean)に変換する方法
JavaScriptでは、文字列が「true」というリテラルと一致するかどうかを比較演算子で判定することで、文字列を実質的に真偽値(Boolean)として扱うことができます。ここでは、==(緩い等価比較)と===(厳密等価比較)の2つの方法を使った具体例を紹介します。 サンプルコード <!DOCTYPE html> <html> <head> <style> body { font-family: &
-
文字列をJavaScriptオブジェクトに変換する方法【JSON.parse()の使い方】
JavaScriptでJSON形式の文字列をオブジェクトに変換するには、JSON.parse()メソッドを使用します。このメソッドは、引数に渡された文字列を解析(パース)し、対応するJavaScriptオブジェクトを返します。 サンプルコード <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Docum