この章ではif文の応用として星座の判定をif文で作ります。
少し長いですが、if文が連なっているだけです。
では例をみてみましょう。
長くなりましたが、説明を始めます。
初めに$Monthに入っている値をチェックして、その数字に一致するif文の箇所に入ります。
$Monthには1が入っていますので、以下の箇所に入ります。 1月は水瓶座と山羊座の2つの星座があるので、これをさらに入れ子のif文で分別して、星座を求めています。
範囲以外の数値であればが出力されます。
結果は以下の通りです。
投稿者: 無漏路
if文を入れ子にしよう
if文について理解しよう。if文の基本構文3
前章の「if文の基本構文2」の応用で、条件式が複数ある場合、つまり細かい条件を設定したい場合にはを使います。
基本構文1,基本構文2は条件に合うか合わないかを判断するのみのプログラムでしたが、は条件式1がFALSEであるならば条件式2をチェックして、ここがTRUEの時に条件式2のブロックが実行されます。
条件式2がFALSEであるならば条件式3をチェックして、ここがTRUEの時に条件式3のブロックが実行されます。条件式3がFALSEであるならばelseのブロックが実行されます。この構文ではelseif を2つしか書いていませんが、いくつでも指定することができます。
では例をみてみましょう。 $aと$bは同じですので、が実行されます。
if文について理解しよう。if文の基本構文2
if文について理解しよう。if文の基本構文1
if文はどのような時に使われるのかを日常生活の場面で説明します。
例えば、もし、今日財布にお金が10000円あったらフランス料理にして、20000円あったら中華料理にするなどの選択を繰り返して人は生きていますが、プログラムでもこのような表現ができるのです。
このように条件によって表現を変えることを条件分岐と言います。 ifは英語と同じでという意味です。
「条件式」には下の表のように比較演算子を使ってなどをやのような記号を使って表現します。
条件式は条件を満たしていればTRUEを返し、条件を満たしていないならばFALSEを返します。そして、TRUEの時にブロックの中の文が実行されます。
TRUEは真、FALSEは偽とも言いますが、何がTRUEもしくはFALSEなのかを次の例で説明します。 条件式には比較演算子のを使用していますが、5は2より大きいですので、条件を満たしていると考えるのです。
これがTRUEです。TRUEですので、が実行されます。
では以下のif文は条件を満たしているでしょうか? 2は5より大きくないので条件を満たしていません。
これがFALSEです。
FALSEの場合は、if文は実行されません。
つまり、ブロック内が何も実行されないので画面には何も表示されません。
では比較演算子の中からいくつか例に取って説明します。 比較演算子の「===」は$a が $b に等しいと同時に同じ型である場合に TRUE と言う意味です。
変数の型については説明しましたが例1は$aも$bも同じ値で、同じ整数型なのでTRUEです。
例 2は$aは文字列型、$bは整数型なのでFALSEです。
このようには値と型が一致しないとTRUEになりません。
比較演算子の「==」は値だけが一致していればif文を実行します。
例2の条件式の箇所をで書き換えますと、TRUEになります。
「==」の場合には値だけが一致していれば型が一致しなくてもTRUEになります。
これまでのif文ではprint文が少し右にずれているのが分かるでしょうか?
この手法はインデントと呼ばれていますが、プログラムを見やすくするために左側にスペースを入れています。
インデントには半角スペースかTABキーを使います。全角のスペースを入れるとエラーになりますので気を付けてください。
foreach文について知ろう
この章ではforeachについて説明します。
foreach文はすべての配列の要素を簡単に取り出すことができます。
今までは以下のように1つずつ配列からデータを取り出していました。 foreachを使用すると短い構文で簡潔に書くことが出来ます。 では例をみてみましょう。 では説明をしていきます。 配列$animalの中の0番目のデータから順番に取り出されて$valueに代入されます。
そして$valueに代入された値はで出力されることになります。
ですので、すべての配列のデータを順番に取り出すことが出来ます。 次は連想配列から配列のキーと値を取り出す方法について説明します。 キー変数とはキーが入る変数です。値変数とは値を入れる変数と言う意味です。
では例をみてみましょう。「$key=>$value」にはそれぞれが順に入り、print文で出力されます。 基本構文2は連想配列ではなくても使用することができます。
例を見てみましょう。この配列は連想配列ではありませんが、添え字の0には猫、添え字の1には犬、添え字の2にはライオン、添え字の3には象、添え字の4にはネズミが入っていますのでキーが入る変数には添え字が入ります。
つまり、自動的に$keyには0から順に添え字が当てられますので
結果は次のようになります。
0は猫
1は犬
2はライオン
3は象
4はネズミ
二次元の連想配列について知ろう
この章では2次元配列について説明します。
2次元配列はarrayを入れ子にすることで表現します。
つまり、arrayの中にarrayが入っているので、配列の中に配列が入っていることを意味します。原理的には2次元以上の配列も作れますがここでは2次元配列のみ説明します。
2次元配列とは以下のように行と列の2次元で考える配列です。 例えば
data[0][0]は0番目の配列の0番目の要素と言う意味です。
data[0][1]は0番目の配列の1番目の要素と言う意味です。
data[0][2]は0番目の配列の2番目の要素と言う意味です。
つまり0番目の配列には3つの要素が含まれています
例を見てみましょう。 以下の配列は、配列の中に3つの配列が含まれています。
ではこの2次元配列からどのように値を取り出すのかを説明します。
$data[0][0]の初めの0の部分はに対して前から0,1,2と数えていきますので、を指しています。
次にdata[0][0]の2つ目の[0]の部分は0番目の要素であるの中のさらに0番目の要素を指していますので、の結果はaになります。
図を用意しましたので参考にしてください。 次に2次元配列の別の書き方について説明します。 上の2次元配列を書き換えますと以下のようになります。
どちらでも書きやすい方で書いてください。
この章では配列について説明します。
普通の$bookのような変数は1つしかデータを入れることができませんが、配列は複数のデータを入れることができます。
複数のデータを扱う場合、普通の変数では別々の変数名でそれぞれのデータを入れなければいけません。 これらの5つの変数は一見して関係性があるように見えますが、メモリ上では全く別の変数であり、関係性はありません。
配列を使いますと、以下の通り1つの変数$animalで複数のデータを扱うことが出来ます。
つまり、1つの変数$animalの中には複数のデータがお互い関係性を持って存在していると言えます。 同じ目的で使用するデータは1つにまとめてしまい、1つの変数で複数のデータを管理できると便利です。
このような時に配列を使用します。
配列の作成方法は5つありますので順番に説明していきます。 配列名の命名規則は変数名の命名規則と同じです。
右辺は配列を表すarrayにカッコを付けて、要素をカンマで区切ります。以下の例で説明しますと猫、犬などのデータ間をカンマ区切ります。
スペースの都合で2行で書いていますが1行で書いても結構です。配列の基本構文1では以下のように配列を作成しました。
これを配列の基本構文2で書き換えますと、次のようになります。
添え字とは配列のデータが何番目に入っているのかを管理する番号です。
例えばコインロッカーを使う場合、必ずロッカーに番号が振ってありますが、この番号があるからこそ、どこに荷物があるのか分かるわけです。
添え字もこれと同じで配列のデータがどこに入っているのかを管理する番号です。
また、添え字は0から順番に番号が付けられていきます。
1から番号が振られるわけではありませんので注意してください。
以下の図で添え字について説明します。 両方の配列に共通していることは配列の先頭である0には猫が入っていて、配列の前から2番目の1には犬が入っていて、配列の前から3番目の2にはライオンが入っていて、配列の前から4番目の3には象が入っていて、配列の前から5番目の4にはネズミが入っていると言うことです。
つまり、以下の図のペアは同じことを意味しています。 基本構文1,2で作成した2つ配列はと言う基本構文3で以下のように書くことが出来ます。 配列の基本構文2との違いはブランケットの中に添え字を使っていないことですが、意味は同じです。
添え字が無くても、添え字の0には猫、添え字の1には犬、添え字の2にはライオン、添え字の3には象, 添え字の4にはネズミが入っています。つまり、添え字を明確に書かない場合には0から順に値が入っていきます。 これまでの配列は添え字が数字でしたが、配列の基本構文4では添え字に文字列を使います。
文字列型の添え字はキーとも呼ばれています。
このように作られた配列を連想配列といいます。
その場合、添え字は文字列なのでダブルクォートで囲みます。 このように添え字に文字列を使いますと単に添え字を数字にした形式と比べて、添え字と値の関係性が分かりやすくなります。
nameが大野という言い方と以下のように0番目が大野という言い方ではわかりやすさが違います。 配列の基本構文4を配列の基本構文5で書き換えると以下のようになります。
キーと値の間にはがあり、キーと値の関係付けを行っています。
これまでは配列の作り方を説明しましたが、ここでは配列からデータを取り出す方法について説明します。 配列$animalから配列の値である猫を取り出すにはと、書きます。
には猫と言うデータが入っていますので、変数の箇所で説明したように、printやechoを使ってその中に入っている値を出力することが出来ます。
つまり、ブランケットの中に添え字を入力するとそれに応じた値を配列から取り出すことが出来ます。
ですので上の例の結果は以下の通りです。 今度は連想配列からデータを取り出してみましょう。 連想配列$humanから配列の値である大野を取り出すにはと、書きます。
つまりには大野と言うデータが入っていますのでprintやechoを使ってその中に入っている値を取り出すことが出来ます。
つまり、ブランケットの中にキーを入力するとそれに応じた値を配列から取り出すことが出来ます。
次に配列のデータを変更する方法について説明します。
配列のデータを変更するには以下のやのように新たなデータを代入するだけです。
これで古い要素である猫、犬が上書きされて新しいデータに変わります。 次は配列のデータをカラにする方法について説明します。
例えば配列を初期化したい場合、つまり要素を消したい場合にはカラの配列を代入します。
カラの配列はで表現します。 では例をみてみましょう。 これで配列の要素はカラになります。
ヒアドキュメントを使おう
この章ではヒアドキュメントについて説明します。
ヒアドキュメントは何列もの長い文字列を出力する時やHTMLのタグを出力するのに便利な方法です。
例題を見てみましょう。
区切り文字に付ける名前は自由に付けてください。
始めの区切り文字から終わりの区切り文字までがヒアドキュメントになります。
ヒアドキュメントを使わないのであれば
と、print文を3個も書かなくてはなりません。
このようなときにヒアドキュメントで記述すると簡潔にプログラムを書けます。
ヒアドキュメントの書き方はprintやechoで直接出力するのか、もしくは一度$languageのような変数に入れてから後でprint やechoで出力するのかのどちらかの方法です。
具体的には以下のように書きます。 ヒアドキュメントにはいくつかのルールがあります。
〇で始まり、で終わりますが、最後にセミコロンを忘れないで下さい。 〇終わりの区切り文字の前にスペースを空けてはいけません。
必ず行頭に置いてください。 〇また、以下のように最後の区切り文字の後ろにコメントなどの文字を入れるのもだめです。 〇
からまではダブルクォートで囲ったのと同じ働きがあります。
ですので、のように書けばヒアドキュメンの中では変数展開をすることができます。
〇初めの区切り文字の右側にタブやスペースやコメントを入れてはいけません(エラーになります)。 補足ですが、PHPではHTMLのタグを以下のようにprintやechoで出力できます。
しかし、正直、HTMLのタグをすべてクォートで囲むのは面倒です。 そこで以下のようにHTML全体をヒアドキュメントに入れてしまうとダブルクォートなどで囲む必要がありませんので便利です。