You are here: Home » php » プログラム苦手な人が見てわかるphpのif文の基本的な使い方

プログラム苦手な人が見てわかるphpのif文の基本的な使い方

phpは使いこなせば、ほぼほぼなんでもできる言語です(出来はさておき)。その理由は条件分岐または制御構文があるからです。

条件分岐とは「もし〇〇なら 〇〇する」ということで、様々な状況に備え記述しておけば勝手にphpが処理してくれます。

自動取引(購入決済の自動化)や会員登録(18才以上は登録できるけど、17才以下は登録できないとか)はもちろん、頑張れば高度なゲームも作れてしまう賢いやつです。

 

そのphpのなかで非常に重要な記述(文)が if文(いふぶん)と呼ばれるやつです。if文を理解したら、結構phpを理解できると思います。今日はif文の話です。

スポンサーリンク

if文の考え方

条件式は以下のように記述します。

ifの隣の()にどうやってtrue(真)、false(偽)を決めるかの条件を書いて、{}の中にtrue(真)、false(偽)を判別する実行プログラムを書きます。条件は一致したら、true(真)、不一致の場合はfalse(偽)を返します。(場合によりますが最終的にtrue(真)になり、結果がechoとかprintでの出力が多いかもしれません。)

また、{条件の一致により実行するプログラム} else {条件の一致により実行するプログラム}に中にある「 else 」は上の条件がfalse(偽)の場合、「じゃ次はこっちの条件を判別してね」的な役割で、実行するプログラムを繋ぐ役割です。

 

true(真)、false(偽)とは単純に合格、不合格的な意味と思ってよいと思います。

例えば、男性で東京在住なら、true(真)=合格⇒出力、それ以外ならfalse(偽)=不合格⇒次の文に行ってまた条件式に当てはめる感じです。

 

また、読み込みは上から下にかけて判定していきます。下から読み込むわけないんで当たり前っちゃー当たり前ですが。

 

if文の書き方の例

if文の書き方の説明です。例として簡単な数値条件の例です。

 

処理の解説

一行目の $a = 100; は変数$aに100を代入しています。

二行目の  if ($a > 500) { はif文で$aは500より大きいかどうかの条件を決めてます。

三行目の  echo “変数aの内容は500より大きい”; はechoで [変数aの内容は500より大きい] の出力をするかどうかの判定をしてます。上の文の場合、$aに100を代入しているので [$aは500より大きいかどうかの条件] の条件に一致しないので、スルーされます。

四行目の } else {  は上の実行するプログラムのどれにも一致しなければ、次に実行するプログラムを出力します。の意味です

五行目の  echo “変数aの内容は500より小さい”;  はelseの次に来る文ですので、最終的にechoで [変数aの内容は500より小さい] を出力する文です。

 

つまり上の文の出力結果は、$aは500より小さいので、最後の文が実行されます。

になります。

 

また

$a = 1000; のように

変数$aが1000とか500以上なら、 [変数aの内容は500より大きい] が出力されます。

 

この条件に一致しなければ、次はこれを判定して、条件に一致したら出力します。が基本的な考え方です。

 

実はphpはこんな単純なことの連続です。簡単とは言いませんが難しいわけでもありません、ややこしいんです。プログラムを嫌いって人もいますが、中身がわかるとかなり「簡単じゃね!」って人を何人もみてきました。

 

比較演算子

上の文で  [if ($a > 500) { ] の中に >  が出てきましたが、これは比較演算と言ってその名の通り右の記述と左の記述を比較して計算する記号です。いくつかあるので一覧を残します。

==  値が等しければtrue
!= 値が等しくなければtrue
< 右側が大きい場合にtrue
> 左側が大きい場合にtrue
<= 右側が大きいか等しい場合にtrue
>= 左側が大きいか等しい場合にtrue
<> 値が等しくなければ真(「!=」と同じ)

true、falseは、ほぼほぼこの演算子で決まることが多いです。

 

演算子は他にも三項演算子、代入演算子、加算演算子、理論演算子とあるのですが、長くなりすぎるのでいつか書きます。

スポンサーリンク

if文の条件が複数の場合はelse if

複数の場合、三行目の [ } else if(条件2) { ] のelse if が出てきます。

この else if はifの条件に一致したらその時点でechoかprintで出力されますが、一致しなければ、次の条件を判定して、次の else if も条件に一致しなければ、最終的に else の次にある文が出力される仕組みです。

ですので、elseif(条件2)、elseif(条件3)、elseif(条件4) とelse ifは いくらでも条件を追加する事が出来、最後にelesでfalse(偽)を決めます。

elseを書かない場合、条件に一致しないfalse(偽)が出るとなにもしないとなります。

 

else ifの例

上の例の場合、一個の条件しか判定できないので、複数の条件を決める場合もかなりあります。むしろこっちの方が使うことが多いです。

複数の条件の場合else ifを使います。

四行目の else if($a > 50) { は $aは50より大きいかどうかの判定をしてます。$aは100なので50より大きいと判定しますのでそのまま、最後のelseの判定を待たず [変数aは50より大きいです。] がechoにより出力されます。

 

というわけで、出力結果は

になります。

 

{ } を使わないendif

今まで記述した、if文は必ず{}(波カッコ)を使っていましたが、それを使わないで記述することもできます。

 

特徴的なのは、elseの右に「 : (コロン)」がついて、endifの右に「 ;  (セミコロン)」が付きます。

 

こんな感じの記述もできます。

ワードプレスのテーマにはこの記述法がよく使われているように感じます。

出力結果は両方とも同じです。

 

 

関数や演算子などを組み合わせる条件分岐があるおかげで、実に様々な事が出来てしまうのがプログラムです。昔はFacebookもGoogleもphpを使っていました(今はもっと合理的な言語を使ってる)、しかし、phpは動的な言語の中で一番学びやすい言語と言われ、習得も早いです。

今phpを学習している人はわからないことが沢山あると思いますが、原理はビックリするほど簡単です。「この場合はこうします」の繰り返しです。

ただ、それぞれは単純なのですが、関数が4000近くあるので最初は「んなもん、できねー」って考える人もいるらしいですが、関数は覚える必要はないです。必要な時にこんなのあったいいなをGoogleで探せば大体あります。その場合PHPマニュアルを確認しながら探すと、良いと思います。

スポンサーリンク

コメントを残す