論理値

広告

if文では条件式の結果が真か偽かで処理する内容を振り分けています。条件式には例えば「x == 10」のように比較演算子を使った条件を記述しますが、条件が正しかった場合には「x == 10」という式そのものが真(TRUE)という値を持ち、条件が正しくなかった場合には「x == 10」という式そのものが偽(false)という値を持ちます。

このように比較演算子は評価した結果として真(TRUE)か偽(FALSE)のいずれかの値を返します。この2つの値が論理値です。論理値はデータ型の1つでTRUE又はFALSEのいずれかです。(大文字小文字は区別しませんのでTrueやtrueでも構いません)。

論理値の値は TRUE 又は FALSE

比較演算子のように結果として論理値を返すものもありますが、変数などに明示的に論理値を代入することもできます。

$flag = TRUE;

if文は条件式の箇所の値が真(TRUE)か偽(FALSE)かで処理を振り分けていますので次のように記述することもできます。

$flag = TRUE;

if ($flag){
  // 条件式が真の時に実行する処理
}

上記の場合は変数「flag」の値がTRUEならばif文のブロック内の処理を実行します。

またif文の条件式のように論理値の値が記述されるべきところに他のデータ型の値が記述された場合、自動的に論理値に型変換が行われて評価されます。型変換が行われてFALSEとなる値は次の通りです。

FALSE
整数の0と浮動小数点数の0.0
空文字""
文字列の"0"
要素の数が0の配列
NULL
メンバ変数の数がゼロであるオブジェクト

上記以外の値は全てTRUEに変換されます。例えば数値の15や文字列の「Hello」などはTRUEに変換されます。

$num = 8;

if ($num){
  // 条件式が真の時に実行する処理
}

上記では変数「num」には数値の8が格納されていますので条件式はTRUEとなります。

サンプルプログラム

では簡単なプログラムで試して見ます。

sample2-1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title>PHPテスト</title>
</head>
<body>

<p>PHPのテストです。</p>

<p>
<?php
if (TRUE){
  print '条件式にTRUEが記述されているので常に実行されます';
}
?>
</p>

</body>
</html>

上記のファイルをWWWサーバのドキュメントルート以下に設置しブラウザからアクセスすると次のように表示されます。

論理値

PHP入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)