PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPのブール型(boolean)入門:定義・構文・キャストのルールを徹底解説

定義と使い方

ブール型(boolean)は、PHPにおけるスカラー型のひとつです。ブール値は TRUE または FALSE のいずれかのみを取ります。この2つはPHPにあらかじめ用意されている定義済み定数です。変数に TRUE か FALSE を代入すると、その変数はブール変数として扱われます。

構文

<?php
// ブール値をリテラルとして変数に代入する
$var=TRUE;
?>

TRUE の値を echo で出力すると「1」が表示されますが、FALSE の場合は何も表示されません。一方、var_dump() 関数を使用すると、型名である bool とその値がセットで確認できます。

ブール定数は大文字と小文字を区別しません。つまり、TRUE は true と等価であり、FALSE は False と書いても同じ意味になります。

また、論理演算子は必ずブール値を返します。

<?php
$gender="Male";
echo ($gender=="Male");
?>

キャスト(型変換)

任意のデータ型は、キャスト演算子 (bool) または (boolean) を使って明示的にブール型へ変換できます。ただし、実際にはほとんどの場面で、必要に応じて自動的に変換が行われます。

FALSE と評価される値

ブール型に変換したときに FALSE になるのは、次の値だけです。

  • ブール値の FALSE
  • 整数の 0 および -0(浮動小数点数の 0.0 も同様)
  • 空の文字列 "" および文字列 "0"
  • 要素を持たない空の配列
  • NULL

上記以外の値は、すべて TRUE と見なされます。特に注意したいのは、文字列 "0" が FALSE になる一方で、-1 のような負の数は TRUE になるという点です。

対応するPHPバージョン

ここで説明した内容は、すべてのバージョンのPHPに共通して適用されます。

次の例では、echo と var_dump() を使ってブール値を表示する方法を紹介します。

例:echo と var_dump() による表示の違い

<?php
$var=TRUE;
echo $var . "\n";
var_dump($var);
$var1=false;
echo $var1;
var_dump($var1);
?>

出力

このコードを実行すると、次のような結果になります。

1
bool(true)
bool(false)

続いて、論理式の評価結果がブール値として返される例を見てみましょう。

例:論理式の評価結果

<?php
$var=10;
var_dump($var>10);
var_dump($var==true);
?>

出力

このコードを実行すると、次のような結果になります。

bool(false)
bool(true)

最後に、キャスト演算子を使ってさまざまな型の値をブール型へ変換する例を示します。

例:キャスト演算子の挙動

<?php
$var=10;
$var1=(bool)$var;
var_dump($var1);
// 0 と -0 は false を返す
$var=0;
$var1=(bool)$var;
var_dump($var1);
// 文字列 "PHP" は true、空文字列は false を返す
$var="PHP";
$var1=(bool)$var;
var_dump($var1);
$var="";
$var1=(bool)$var;
var_dump($var1);
// 要素のある配列は true、空の配列は false にキャストされる
$var=array(1,2,3);
$var1=(bool)$var;
var_dump($var1);
$var=array();
$var1=(bool)$var;
var_dump($var1);
?>

出力

このコードを実行すると、次のような結果になります。

bool(true)
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
  1. Pythonのタプル(tuple)データ型とは?基本と使い方を徹底解説

    タプル(tuple)とはタプルは、リストとよく似たもう一つのシーケンス型(シーケンスデータ型)です。タプルは、カンマで区切られた複数の値によって構成されます。リストとの大きな違いは、タプルが丸括弧 ( ) で囲まれるという点です。リストとタプルの主な違いリストとタプルの違いは、次のようにまとめられます。リストは角括弧 [ ] で囲み、要素やサイズを後から変更できる。タプルは丸括弧 ( ) で囲み、一度作成すると更新できない。そのため、タプルは「読み取り専用(read-only)のリスト」と考えることができます。変更されない固定データを扱いたい場合に、タプルは非常に便利です。タプルの基本的な使い

  2. Pythonの文字列データ型の基本:定義方法・スライス・連結・繰り返しを解説

    Pythonにおける文字列とはPythonの文字列(string)は、引用符で囲まれた連続した文字の集合として表現されるデータ型です。Pythonでは、単一引用符(...)と二重引用符(...)のどちらのペアでも文字列を定義でき、両者に機能上の違いはありません。また、文字列の一部(部分文字列)を取り出すには、スライス演算子([ ] および [:])を使用します。インデックスは文字列の先頭が「0」から始まり、末尾に向かって「-1」という負の値で逆方向にも数えられるのが特徴です。文字列の連結と繰り返し文字列に対して使える主な演算子は以下のとおりです。+ (プラス記号):文字列同士を連結する演算子*