【PHP8.x】boolval関数の使い方

boolval関数の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

『boolval関数は、引数に与えられた変数が持つ値の真偽値(ブール値)を取得して返す関数です。真偽値とは、プログラムの世界で「真(true)」か「偽(false)」のどちらかを表すための特別なデータ型です。PHPでは、様々な型の値が文脈に応じて自動的に真偽値として解釈されますが、boolval関数はこの変換を明示的に行います。具体的には、整数0、浮動小数点数0.0、空の文字列""、文字列の"0"、要素が0個の配列、そしてNULLfalseとして扱われます。これら以外の値、例えば0以外の数値、空でない文字列、要素が1つ以上ある配列などは、すべてtrueとして返されます。この関数を使用することで、ユーザーからの入力やデータベースから取得した値が、条件分岐などでtruefalseのどちらとして評価されるべきかを明確に判定できるため、意図しない挙動を防ぎ、コードの信頼性を高めるのに役立ちます。

構文(syntax)

1<?php
2
3$boolean_value = boolval($any_value);

引数(parameters)

mixed $value

  • mixed $value: boolean型に変換したい値

戻り値(return)

bool

指定された値をブール型(真偽値)に変換した結果を返します。

サンプルコード

PHP boolval() vs (bool)型キャスト比較

1<?php
2
3/**
4 * PHPのboolval()関数と(bool)型キャストの挙動を比較するサンプル関数。
5 *
6 * さまざまな型の値がどのようにブーリアン値に変換されるかを示します。
7 * boolval()と(bool)は、PHPにおいて同じ変換ロジックに従います。
8 */
9function demonstrateBoolConversionComparison(): void
10{
11    // 比較対象となる値の配列を定義
12    $valuesToTest = [
13        '整数 0' => 0,
14        '整数 1' => 1,
15        '整数 -1' => -1,
16        '浮動小数点数 0.0' => 0.0,
17        '浮動小数点数 0.1' => 0.1,
18        '空文字列 ""' => "",
19        '文字列 "0"' => "0",
20        '文字列 "1"' => "1",
21        '文字列 "false"' => "false", // "0"以外の文字列は真と評価されます
22        '空配列 []' => [],
23        '非空配列 [1]' => [1],
24        'NULL' => null,
25        '真偽値 true' => true,
26        '真偽値 false' => false,
27    ];
28
29    echo "--- PHP boolval()関数 vs (bool)型キャストの比較 ---\n\n";
30
31    foreach ($valuesToTest as $description => $value) {
32        // boolval()関数による変換
33        $boolvalResult = boolval($value);
34        // (bool)型キャストによる変換
35        $boolCastResult = (bool) $value;
36
37        echo "元の値({$description}): ";
38        var_export($value); // 値を正確に表示
39        echo " (型: " . gettype($value) . ")\n";
40
41        echo "  boolval()       -> ";
42        var_dump($boolvalResult); // 変換結果と型を表示
43        echo "  (bool) キャスト -> ";
44        var_dump($boolCastResult);
45
46        // 両者の結果が一致することを確認
47        if ($boolvalResult === $boolCastResult) {
48            echo "  [結果一致]\n\n";
49        } else {
50            echo "  [!!! 結果不一致 !!!] これは通常発生しません。\n\n";
51        }
52    }
53}
54
55// 関数を実行
56demonstrateBoolConversionComparison();

PHPのboolval()関数は、与えられたあらゆる型の値を真偽値(trueまたはfalse)に変換する関数です。引数には任意の型の値(mixed $value)を受け取り、その結果を真偽値(bool)として返します。この変換ロジックはPHPの言語仕様に基づいており、一般的に「偽と評価される値(falsy value)」と呼ばれる特定の型と値はfalseに、それ以外の値はtrueに変換されます。具体的には、整数0、浮動小数点数0.0、空文字列""、文字列"0"、空の配列[]null、そして真偽値のfalseなどがfalseと判断されます。サンプルコードでは、このboolval()関数と(bool)という型キャストを比較しています。(bool)型キャストもboolval()関数と全く同じ変換ルールに従って値を真偽値に変換します。したがって、どちらを使っても同じ結果が得られます。コードの可読性や個人の好みに応じて使い分けることができますが、基本的に両者はPHPにおける値の真偽変換において等価な機能を提供します。

PHPのboolval()関数と(bool)型キャストは、基本的に同じブーリアン変換ロジックに従うため、どちらを使っても結果は同じです。特に注意すべきは文字列の扱いで、文字列"0"falseに変換されますが、文字列"false"やその他の空でない文字列はtrueになります。この点は他言語と異なる場合があるため、混同しやすいポイントです。また、整数0、浮動小数点数0.0、空文字列""、空配列[]NULLfalseに変換され、これら以外の値はtrueになります。これらの変換ルールは、if文などの条件式でも暗黙的に適用されるため、ブーリアン変換の挙動を理解しておくことが重要です。

関連コンテンツ

【PHP8.x】boolval関数の使い方 | いっしー@Webエンジニア