今回は、PHPファイルの作り方、プログラムの書き方について詳しく紹介しています。
これまでの連載で解説したHTML/CSSとは違い、システムの裏側の言語なので、多少複雑に感じるかもしれませんが、普段エンジニアがどういった作業をしているのか理解する良いきっかけになるはずです。
自分でWebサービスを作りたい人は、第一歩となるので、実際に書きながら覚えていきましょう。
PHPとは
PHPはプログラム言語のひとつで、サーバーサイドの言語になります。Webページを動的に表示させる言語で、基本的にはHTMLのコードの中にPHPのコードを埋め込んでいく形になります。
HTMLとCSSだけでもWebページを作ることはできますが、この2つだけだと静的なページしか作ることができません。静的なページとは、いつ誰が見ても同じ内容が表示されるページです。企業のホームページなど、比較的更新性が低いページがこれにあたります。
PHPを使うことで、動的なページを作ることができます。動的なページとは、見る人によって表示される内容が違うページです。例えば、TwetterやFacebookなどのSNSは、アカウントによって違うページが表示されます。これらのWebページはHTMLとCSSだけでは実現できません。
具体的にPHPを使ってどんなものが作れるのかというと、お馴染みお問い合わせフォームや宿泊施設などの予約システム、それからログイン機能や検索機能などを作ることができます。他にもたくさんの機能を、PHPを使って実現することができます。
PHPファイルの作り方
PHPファイルは、テキストエディタを起動すれば簡単に作成することができます。以下の手順で作成できます。
1. エディタを開き、ファイル→新規作成。
2.ファイル→名前をつけて保存を選ぶ。
3. 拡張子を.phpにして保存する。
これで、PHPファイルが作成できます。
PHPの書き方
記述したPHPを実際に動かすには環境の構築が必要ですが、ここでは環境構築が不要なcloud9というサービスを使って動かしてみます。
詳しい使い方は、弊社で掲載している「Cloud9の使い方の記事」をご覧ください。
Hello World!
「<?php」というタグと、「?>」という閉じタグの間に記述されたものがプログラムとして実行されます。以下の例は、「ブラウザにHello World!を表示させる」というプログラムです。
PHPでは、「echo」というメソッドの後に文字列を記述するとそれが画面に表示されます。
<プログラム>
<?php
echo "Hello World!";
?>
<実行結果>
コメントアウト
PHPを含むほとんどのプログラミング言語では、説明文を記述することができます。プログラマーは、該当プログラムがどのような処理を行うのか、あるいはどういう理由から処理を組み込むことになったのかなどを記述し、修正担当者らがすぐにプログラムを理解できるようにしています。
この機能を「コメント」と呼び、コメントとして記述する行為を「コメントアウト」と呼びます。コメントアウトした部分は、プログラムとして実行されることはありません。
PHPでは、「#」と「//」と「/\* \*/」が用意されています。「#」と「//」を使うとその行の記述部分以降がコメントに、「/\* \*/」を使うと複数行にまたがっていても\*に挟まれた部分がコメントになります。
|
<プログラム>
<?php
//Hello World!と表示させる
echo "Hello World!";
?>
<実行画面>
演算
当然ですが、プログラムでは演算をすることもできます。数学で習った記号と少し違っていて、掛け算の記号は「\*」、割り算の記号は「/」になります。また、割ったあまりを返す「%」という記号があります。
<プログラム>※ “<br>”は改行のタグ
<?php
echo 3 + 5;
echo "<br>";
echo 8 - 5;
echo "<br>";
echo 5 * 3;
echo "<br>";
echo 8 / 4;
echo "<br>";
echo 7 % 2;
?>
<実行結果>
変数
変数とは、データを格納する箱のようなものです。「$」のあとに変数を宣言し、数字や文字列などのデータを格納します。
例えば、「echo $num = 3」と記述すると、「$num」に代入した数字の「3」が表示されます。変数を使って演算もできます。「$num += 3」とすることで、「$num」に3をプラスすることができます。
<プログラム>
<?php
$num = 3;
echo $num;
echo "<br>";
$num += 3;
echo $num;
?>
<実行結果>
配列
変数はひとつのデータのみを扱いますが、配列を定義すると複数のデータを入れることができます。データを入れておくための箱がつながったものとお考えいただければよいでしょう。
配列は「array( )」で定義します。配列のデータには、自動的に「インデックス番号」というものが割り振られます。箱の場所を示す数字とお考えください。
インデックス番号は、先頭から順に、0から割り振られます。1ではなく0からなので注意が必要です。配列のデータを取り出すときは、このインデックス番号を使用します。例えば、以下のプログラムで「apple」を取り出して表示する場合には、「echo $fruits[0]」と記述します。
<プログラム>
<?php
$fruits = array('apple', 'peach', 'banana');
echo $fruits[0]:
?>
<実行結果>
連想配列
連想配列は、配列のインデックス番号の代わりに自分で要素に名前をつけて、その要素を元にデータにアクセスできるようにしたものです。この要素のことをキーと言います。
以下の例で「apple」というデータを取り出して表示するには、「echo $fruits[‘red’]」と記述します。
<プログラム>
<?php
$fruits = array(
'red' => 'apple',
'pink' => 'peach',
'yellow' => 'banana';
);
echo $fruits['red']
?>
<実行結果>
if文
プログラムは基本的に書かれている順に処理を実行していきますが、「if」文という構文を使うと特定の命令のみ実行させることができます。
「if」の後に書かれた条件に当てはまれば、処理を実行。当てはまらなければ、「else」の後の処理が実行されます。「elseif」と記述して、さらに細かく条件を設定することもできます。
<プログラム>
<?php
$x = 20;
if($x > 30){
echo '$x > 30';
}elseif($x >= 20){
echo '$x >= 30, $x >= 20';
}else{
echo '$x < 20';
}
?>
このプログラムでは、まず、変数「$x」を定義して、20という数字を代入します。その後、if文を使って、「$x」の中身を判定しています。もしも「$x」の中身が30よりも大きかったら、「$x > 30」と表示します。違っていて、もしも「$x」の中身が20以下だったら、「$x >= 30,$x >= 20」と表示します。記述したどの条件にも当てはまらなかったら、「$x < 20」と表示します。このプログラムでは、 $x の中身は20という数字が入っているので、「elseif($x >= 20)」の条件に当てはまり、「$x <= 30,$x >= 20」が表示されます。
<実行結果>
while文
while文は、繰り返しの構文です。条件を満たしている間、同じ処理を繰り返します。
while文では、初期値と条件を設定し、増減式を書きます。増減式を書き忘れると、ループを抜けることができなくなり、無限ループに陥ってプログラムに負荷がかかってクラッシュしてしまうので注意が必要です。
<プログラム>
<?php
$i = 1;
while($i <= 10){
echo $i;
$i ++;
echo'<br>';
?>
このプログラムでは、まず変数を初期化しています。すなわち、「$i」を定義して、「1」を代入しています。そして「$i」が10以下の間、つまり「10」まで処理を繰り返すという条件を記述します。「$i」を表示したら「$i」に「1」をプラスし、また「$i」を表示します。これを「$i」が「10」になるまで繰り返します。「11」になったら処理を抜けます。
<実行結果>
関数
関数とは、実行したい処理をひとまとめにして、簡単に実行するためのものです。決まった処理を何度も使う時に使用します。Funncutionのあとに関数名を定義して、{}の中に処理を記述します。関数を呼び出すときは。関数名( );と記述するだけです。
<プログラム>
<?php
function hello(){
echo 'hello';
}
hello();
?>
<実行結果>
|
getとpost
PHPでは、Webサイトのフォームから送られてきたデータを、プログラムで取得することができます。「form」の「method」を「get」にすると送信される値がURLに表示され、「post」の場合はURLに表示されません。
例えば、googleでなにかを検索すると、URL後方に「?」が付きその後に「q=~~」というかたちで、検索したワードが出てきます。「get」はこういう使い方ができるので、URLを誰かとシェアしたい場合は「get」を使うのが適しているといえます。反対に、ログインやパスワードなどの場合は、URLに表示されては困るので「post」が適しています。
|
サーバーとクライアント側の役割について
サーバーサイドの役割はインターネット上にあるサーバーからアプリケーションを提供することです。クライアントサイドはWebサイトを閲覧しているブラウザを指します。
クライアント側のブラウザから入力がありPHPのコードが実行されると、サーバーや、同じくインターネット上にあるデータベースというデータの集まりにアクセスして、そのデータを取得したりすることができます。
例えば、ブラウザの入力フォームに名前を入力して送信を押すと、裏でPHPのプログラムが実行され、データベースに情報を保存します。
また、SNSで自分専用のページが表示されるのも、プログラムが実行され、データベースの情報をもとにその人専用のページを呼び出しているからです。
利用者からしたら簡単なことも、裏では複雑なプログラムが実行されているのです。
今回は、Cloud9を使って実際にPHPのコーディングに入りました。
PHPは初心者でも始めやすいプログラミング言語の一つなので、これからエンジニアを目指す人やプログラミングを理解したい人にはおすすめです。
著者紹介
TechAcademy (https://techacademy.jp/)
プログラミングやWebデザイン、アプリ開発が学べるオンラインスクールを運営。
TechAcademyマガジンでは、プログラミングやWebデザインなど技術に関する最新トレンド、ツールの使い方を紹介しています。開発作業や学習に役立つコンテンツがご覧になれます。
なお、本稿はTechAcademy の「はじめてのプログラミングコース」を元に解説しています。