logo

パレット - カラフルに🎨

Palette — ビジュアルページビルダー、デザインの専門知識は不要です。

ライブデモ パレットをダウンロード

Scroll

PHP レッスン — レッスン 5 — PHP の論理変数

08/12/2019, by Ivan

では、PHP には数値型と文字列型があることがわかりました。しかし、これはほんの始まりです。このレッスンでは、別の種類の変数、具体的には論理型(ブール型)の変数について見ていきます。これらの変数が論理型と呼ばれるのは、コードのロジックを構築するために使用されるからです。さまざまな条件下で異なるアクションを実行する必要がある状況があるとします。水が入ったコップがあり、そこから飲みたいのですが、水が少なすぎるなら飲めず、多すぎるなら、コップを傾けたときに水があふれて体にかかります。だから、コップの水位に応じて、水を足すか、水を減らす必要があります。

これは次のように表すことができます:

$コップの中の水の量 = 100;
$水が少ない = 真;
もし $水が少ないなら
その場合 $コップの中の水の量 = $コップの中の水の量 + 20;

この場合、$水が少ない という変数は論理型の変数で、TRUE(真)または FALSE(偽)の値を取ることができます。それ以上でも以下でもありません。上記のコードは PHP ではなく、PHP ファイルに貼り付けると Apache はエラーを出します。PHP での同等のコードは次のようになります:

$water = 100;
$not_enough_water = TRUE;
if($not_enough_water){
  $water = $water + 20;
}

条件演算子の if についてはあとで説明しますが、今のところは TRUE と FALSE について話しましょう。通常、TRUE と FALSE の他に、1 と 0 を使うこともあります。では、わざわざ TRUE と FALSE を使って生活を複雑にする必要があるのでしょうか。整数型の変数が小数型の変数よりも 2 倍少ないメモリを占めることを覚えていますか?同様に、論理型変数(TRUE または FALSE)は、整数型の4 分の 1の、小数型の8 分の 1のメモリを占めます。したがって、可能な限り TRUE または FALSE を使用する方が良いです。

皆さんはおそらく「これくらいのメモリビットの何が重要なのか?サーバーには 8 ギガバイトの RAM がある」と思うかもしれません。しかし、今、サイトに 1000 個の整数型変数があり、それらを論理型に置き換えることができると想像してください。1 回のサイト要求で、これらの変数だけで 4 メガバイトのメモリが消費されます。論理型変数を使用すると 1 メガバイトです。では、100 人のユーザーが同時にサイトをリクエストしたと想像してください。整数型変数の場合、400 メガバイトがかかり、論理型を使用した場合はわずか 100 メガバイトです。300 メガバイトの差があります。確かに例は簡略化されていますが、原則はおわかりだと思います。

 

論理型変数が整数型にどのように変わるかについてもう一つ説明します。

<?php
$var1 = TRUE;
$var2 = TRUE + 1;
echo $var2;
?>

結果は 2 になります。つまり、PHP は論理型と数値を自動的に加算するため、型の互換性の問題を心配する必要はありません。