論理型:boolean
そふぃのPHP入門 >> PHP言語リファレンス >> PHPの型 >> 論理型:boolean

論理型:boolean

論理型とは

論理型(boolean)とは真偽の値を表す型です。この型の値はtrueまたはfalseのいずれかになります。trueが「真」、falseが「偽」という意味になります。両方とも大文字・小文字を区別しませんので、truetruefalsefalseなどは同じものになります。

論理型はPHP4で導入されましたので、それ以前のバージョンでは使用できません。

変数に論理型を持たせるためにはこのようにします。

論理型の代入サンプル

  1. <?php
  2. $var = true; // trueを$varに代入
  3. ?>

truefalseなどの論理型は、if文などの条件分岐に演算子と共に使われる事が多いです。条件分岐は結果が「真」か「偽」かで処理を変えることのできるスクリプトですが、詳しくは制御構造に入ってからやる事にして、ここでは簡単なサンプルを載せるにとどめます。

条件分岐のサンプル

  1. <?php
  2. // $fruitが"apple"という値なら文章を出力する。
  3. if( $fruit == "apple" ){
  4.     echo "果物はりんごでした";
  5. }
  6. ?>

上記のサンプルの場合、$fruitが"apple"の場合のみtrue(真)、"apple"でなかった場合にfalse(偽)になります。

論理型への変換

型についてでお話した通り、PHPでは自動で型変換を行うので明示的に型を変える必要がありません。論理型の値を演算子や関数、制御構造などが必要とした場合にはたいてい値が自動的に論理型に変わります。楽チンですね~♪それでも型の変更がしたい場合は型についてのページで紹介している型の変換をご利用ください。

論理型に変換する場合、PHP内部では次の値がfalseとして扱われ、それ以外はすべてtrueとして扱われます。

  • 論理型のfalse
  • 整数型の0
  • 浮動小数点型の0.0
  • 文字列型の""(空文字)
  • 文字列型の"0"(文字列としての0 ASCIIの48)
  • 空の要素を持つ配列
  • 空の要素を持つオブジェクト
  • null
  • 値が代入されていない変数

上記以外の値はすべてtrueとみなされます。リソース型などはすべてtrueとなります。整数値で「-1」などのマイナス数値でもtrueと扱われるので注意して下さい。

色々な値の論理値

  1. <?php
  2. //キャスティング(bool)で値を強制的に論理値に変更しています。
  3.  
  4. (bool) ""; // falseになる--空文字
  5. (bool) 5; // trueになる--プラスの整数値「5」
  6. (bool) -28; // true--マイナスの整数値「-28」
  7. (bool) "abc"; // true--文字列「abc」
  8. (bool) 2.3e5; // true--浮動小数点型
  9. (bool) array(16); // true--配列:要素「16」
  10. (bool) array(0); // true--配列:要素「0」
  11. (bool) array(); // false--配列:要素空
  12. (bool) null; // false--ヌル型
  13. ?>

値が「何もない」状態の時にfalseになります。「0」は要素や文字列として扱われるとtrueとなり、「何もない」状態は数値として扱う「0」だけです。ついでに「null」は「何もない」状態を扱う特殊な型です。ヌル型を参照して下さい。