PHPプログラム 基礎知識編~条件分岐やループ文の使い方など基本的な記述方法を覚えよう

Webサイトを作成していくにあたりHTMLファイルを作成し、ページを構築していきます。その中でWebサイトに様々な機能を付与したり、利用者に情報を入力してもらいデータを受信・蓄積する仕組みが必要になることがあります。

そこでPHPを利用してみましょう。まずは、PHPの基礎知識や記法を紹介します。

 

 

■PHPの基本記法

・変数

・定数

・配列

・連想配列

・演算子

 

■PHPで簡単なプログラミングを書いてみる

・条件分岐

・反復処理

 

 

■PHPの基本記法

PHPを作成するにあたり、まず拡張子が「.php」になるファイルを作成します。また、HTMLタグと一緒に利用できるので、すでに作成したHTMLファイルの途中でPHPタグを記載して処理を実行させるといったことも可能です。

 

 

<?php echo “Hello World”; ?>

上記のようにPHPのコードを記述する際は「<?php」の開始タグから「?>」終了タグで囲った間で記載します。

上記例は、「Hello world」というテキストを表示させるコードです。echoは「;」までの値を出力させるという命令文になります。

PHPでは一部例外を除いて命令文の最後は「;」を記述します。

これが抜けてしまうとPHPエラーが発生してしまうので注意してください。

 

・変数

特定の文字列や数字などのデータを利用する際、変数という値にデータを格納します。

変数とは数字でいうXに値を代入して計算するのと同じもので、「$test」のように記載され、データを処理する際に必ず利用される記法です。

 

<?php $test = 7;

echo $test; ?>

 

上記のように$testには7が挿入されています。

この状態で$testをechoすると7が出力されます。

変数のルールとして、

 

・$から始まる

・$の次は必ずa〜z(A〜Z)か「_」(アンダースコア)を続けて記載する、それ以降は数字も利用可能

・同じ文字でも大文字と小文字は区別される

 

があります。

変数は値を上書きすることができるので加減算結果を上書きしていくことも可能です。

また、変数には型というものが存在しており、一見出力結果が同じでも型により扱いが変わります。

 

integer:数値型

boolean:論理型

string:文字列型

array:配列型

object:オブジェクト型

などが存在します。

 

・定数

定数は変数と違い、一度値を設定したら変更はできません。

必ず使い回すという固定の値がある場合は、定数に設定します。

 

<?php define(“TEST_DATA”, “これはテストデータです”);?>

 

のように記載します。

定数も大文字小文字を区別しますが、慣習的に大文字で記載します。

 

・配列

配列は変数と違い複数の値を格納することができる箱のようなものです。冷凍庫で氷を作る製氷機の器をイメージしてもらうとわかりやすいです。器の中に値が順番に格納されている形で、データを取得する際は何番目の値を取得するかを指定します。

 

<?php $test = array(“alfa”,”bravo”,”charlie”);

echo $test[“0”]; // alfaが出力される

echo $test[“1”]; // bravoが出力される

echo $test[“2”]; // charlieが出力される

 

上記のように変数に[]をつけて何番目の値を取得するかを選択します。この[]の中に入る値を添え字といいます。

配列に格納されている値は0番目から始まるので覚えておきましょう。

 

・連想配列

連想配列は配列と違い、添え字の部分を特定の文字列に与えて格納することができます。

 

<?php $test = array(“first” => “alfa”, “second” => “bravo”, “third” => “charlie”);

 

echo $test[“first”]; // alfaが出力される

echo $test[“second”]; // bravoが出力される

echo $test[“third”]; // charlieが出力される

 

配列の時と同じく添え字にあたる部分に文字列を指定して値を取得します。これをキーといいます。

 

・演算子

演算子は受け取る特定の値から別の値を生み出すもので、値と値を足し合わせたり、結合させたりすることを指します。

その中でも代表的なものをいくつか紹介します。

 

(代数演算子)

代数演算子とはデータの加減算、積、商を求める演算子です。

 

<?php $test = 8;

echo $test + 1; // 9が出力

echo $test – 1; // 7が出力

echo $test * 2; // 16が出力

echo $test / 2; // 4が出力

 

echo $test % 3; // 3で割った余りの2が出力

echo $test ** 2; // $testの2乗の64が出力(PHP5.6以降)

剰余を求める演算は後述するループ文で特定回数を判断するのに役に立ちます。

累乗はPHPのバージョンが5.6以降のみ利用が可能なので注意してください。

 

(比較演算子)

比較演算子はその名の通り二つの値を比較します。

大小を比較したり値が等しいかなどを確認したりする演算子です。

 

$test = 1;

$test2 = 2;

var_dump($test == $test2); // $testと$test2が等しい時true

var_dump($test === $test2); // 値及び型が等しい時true

var_dump($test != $test2); // 値が等しくない時true

var_dump($test > $test2); // $testが$testより大きい時true

var_dump($test >= $test2); // $testが$test2大きいか等しい時true

var_dump($test < $test2); // $testが$test2より小さい時true

var_dump($test <= $test2); // $testが$test2より小さいか等しい時true

 

(論理演算子)

論理演算子は2つの真偽値を利用します。

A条件とB条件それぞれを満たす、もしくはどちらかを満たすかという条件にマッチするか調べる演算子です。

 

$test = true;

$test2 = true;

var_dump($test && $test2); // $test及び$test2が共にtrueの時true

var_dump($test || $test2); //$test1または$test2がtrueの時true

var_dump(!$test); // $testがtrueではない時true

これらの演算子はいずれも、複数の値を用いて特定の条件に当てはまる場合を調べる条件分岐処理等で利用されます。

 

 

 

■PHPで簡単なプログラミングを書いてみる

上記までの記法をもとに条件分岐や反復処理を用いて簡単なプログラミングを書いてみましょう。

 

・条件分岐

条件分岐はその名の通り、特定の条件に当てはまる場合に分岐をして、それぞれの処理を行うものを指します。

 

<?php $test = 30;

if ($test > 29) {

echo “30歳以上ですね”;

} elseif ($test > 19) {

echo “20代ですね”;

} else {

echo “未成年ですね”;

}

 

上記のようにif文を使います。

if分は条件分岐を行う構文の1つで、条件式がtrue・falseそれぞれの条件を書くことで処理を分岐させることができます。

上記ではまず「$testが29より大きかった場合」、その条件に満たない場合は「19より大きかった場合」、それ以外の場合、という形で値を判定していきます。

 

if文の場合、ifとelseのみの二分岐処理であればシンプルに記述できますが、条件が多くなる場合(多分岐)、elseifの記述をその都度記載しなくてはなりません。

多分岐になる場合は、switch文を利用するのが適しています。

 

<?php $test = 30;

switch($test) {

  case  $test > 29:

       echo “30歳以上ですね”

  break;

  case 20:

       echo “二十歳ですね”;

  break;

case $test >= 21 && $test < 30:

      echo “20歳〜29際ですね”;

  break;

  case $test < 20:

      echo “未成年ですね”;

  break;

}

 

上記のように表記します。

「●●のcase」のように条件がわかりやすく記載できるので、多分岐になる場合はswitchで記載すると見やすいですし、処理速度もif文で同様の処理をするよりも速く処理されます。

 

・反復処理

ループ文とも言われ、特定の条件を満たすまで同じ処理を繰り返すことを指します。

前述した配列など複数の値を保有した変数を精査していく時に用いられます。

 

<?php $test = array(“alfa”,”bravo”,”charlie”,”delta”);

for ($i = 0; $i < 4; $i++) {

echo $test[$i];

}

 

上記はfor文を利用し$testに添え字を与えて1つずつ表示させていくというプログラミングです。

for文は、3つの式を元に反復処理を行います。

 

for(式1,式2,式3) {

処理;

}

 

 

最初に式1がループ開始時に実行されます。

次に反復開始時に式2の条件がtrueかチェックします。trueの場合はループが継続され処理が実行されます。falseだった場合はループの実行終了として処理は行われません。

式3はループ内の処理が実行された後に実行されます。

今回の表記だとまず$iに0を代入(式1)、$iが4よりも小さい場合はtrue(式2)、最初は0が代入されているのでtrueとしてループ内の処理が実行されます。

処理実行後$i++($i + 1を実行する処理)が実行されます(式3)。

これを式2の$iが4よりも大きい数値になるまで繰り返します。

 

また、配列やオブジェクトを反復処理する場合はforeach文を使うと便利です。

 

<?php $test = array(“alfa”,”bravo”,”chirlie”,”delta”);

foreach ($test as $value) {

echo $value;

}?>

foreach文は配列とオブジェクトの中身を変数に代入し処理を行い、配列やオブジェクト内のデータの数だけ反復処理が行われます。

上記では$testの中に格納されている要素を1つずつ$valueに格納するという形で、前述のfor文と同じ処理内容になりますが、記述する数が少なくて読みやすいので配列やオブジェクトの反復処理を行うときはforeach文を利用するとよいでしょう。

また、添え字も同時に取得する記法として次のようなものがあります。

 

<?php $test = array(“alfa”,”bravo”,”charlie”,”delta”);

foreach ($test as $key => $value) {

echo $value[$key];

}?>,

これは配列に格納されている値を$valueに代入すると共に、添え字の数値を$keyに代入しています。

これを利用することで、特定値の添え字の数値を取得して別の判定をすることも可能です。

 

<?php $test = 1;

while($test < 10) {

echo $test;

$test++;

}

上記はwhile文を利用した反復処理です。

while文は与えた条件がtrueな限り反復処理を行います。

処理内で条件をクリアしない限りループし続けるので、利用する際は注意が必要です。

もし途中でループ処理を終了する場合は、breakを記述することで処理を中断することができます。

 

<?php $test = 1;

while($test < 10) {

if ($test == 5) {

break;

}

echo $test;

$test++;

}

 

今回紹介した記法は基本的なもので、他にも色々な構文が存在します。Webサイトを構築する上で動的ページを作成する際、PHPは学習コストも低く利用しやすいので是非活用してみてください。

 

 

 

 

うちだ
サービスクリエーション本部所属        (監修:とみなが)       

オススメ記事