PHPとは?初心者におすすめな理由やPHPの書き方基本

今回はその理由とPHPの仕組み、簡単な構文を紹介していきます。
PHPとは
Web開発で利用されているスクリプト言語です。サーバーサイドのスクリプト言語でWebアプリケーションやWebサービスの開発において世界で広く利用されています。
Web開発で利用されるスクリプト言語には他にJavaScriptがありますが、こちらはクライアントサイドのスクリプト言語です。
- サーバーサイドとは
サービスを提供する側を指します。ユーザーインターフェース上では見えない処理を行っています。ユーザー(クライアント)から受け取ったリクエストを解釈し、処理に必要なデータにアクセスし、実際に処理を行いクライアントへ返却する作業を行います。
- クライアントサイドとは
ユーザーとの入出力を行う場所を指します。必要に応じてWebサーバーとの接続を行います。クライアントサイドで行われる処理はネットワークを利用してデータ通信をする必要がないため時間がかからず、処理能力も少なくて済み、セキュリティリスクも軽減されます。
PHPは、動的なWebサイトの作成が得意です。データベースに連携することによりECサイトにおける商品追加や購入、登録フォームからのデータ取得、確認メールの送信などを実装できます。
また、ブログやSNSなどデザイン性のあるものやユーザー、投稿内容などの管理をするアプリケーションの開発も得意です。
一方でPHPはサーバースクリプトのためデザインの実装はできません。またWebアプリケーションを動作させるためにはコンピュータやインターネットの仕組みを学ぶ必要があります。
PHPが初心者向けである理由
PHPは比較的初心者向けと言われていますが、それはなぜなのでしょうか。
無償で利用できる
利用マニュアルも完備されており、バグ修正などのメンテナンスも随時行われているため、安心して利用できます。
型を指定しなくて良い
一般的なプログラミング言語では、変数を定義する際、その型を指定する必要があります。しかしPHPでは指定する必要がありません。
たとえば文字として利用していた”1,000”という文字列を、数値の”1,000”として計算に利用したい時、他の言語であれば数値型の”1,000”を改めて定義する必要がありますが、PHPでは暗黙的に型を変換してくれます。
ちなみに型を変換することをキャストと呼びます。
インタプリタ言語である
プログラムは、人間がプログラミング言語でコーディングを行ったものを機械語に変換して実行することで動きます。
インタプリタ言語ではプログラムを作成するとすぐに実行できます。プログラムを実行すると1行ずつ機械語への変換と実行を繰り返します。そのため、プログラムを一度全て機械語へ変換してから実行するコンパイラ言語と比べると、処理速度が遅くなります。
しかし速度はコンピュータの性能にも依り、そちらへの依存度の方が高いため、コンパイラの手間が省けるインタプリタ言語の方が開発効率は良いとされています。
デバッグしやすい
プログラミングをしているとコーディングミスや文法ミスが起こりますが、PHPではエラーが発生した時エラーメッセージが表示され、エラーが起きた場所も特定してくれます。そのため修正を行いやすく手詰まりを軽減できます。
自動で文字コード変換を行える
PHPの設定ファイルに記述するだけで、入力されたデータの文字コードの変換や、表示の際の文字コードの変換を自動で行ってくれます。
一般にWebサイトの文字コードはUTF-8という規格に統一されつつありますが、日本語のメールなどはまだ統一されていない場合も多いため、文字コードの自動変換は有用です。
PHPの仕組み
PHPはWebサーバー上において下記の流れで動きます。
- ユーザーリクエスト……ユーザーがサイトの中でボタンクリックなどのアクションを起こします。その内容がWebサーバーへ送られます。
- サーバーサイドでの処理……受け取ったユーザーリクエストの内容をサーバーサイドで解析し、サーバー上で処理を行います。処理が終わるとクライアントサイドへレスポンスを送信します。
- クライアントサイドへの反映……処理結果をレスポンスとしてユーザーインターフェース上に返却します。PHPはサーバーサイドのスクリプト言語であるため、Webサーバー上にPHPをインストールする必要があります。
- Webサーバーとの連携……PHPはデータの処理だけを行います。そのためクライアントサイド(ユーザー)からデータを受け取ったり、送信したりする処理はWebサーバーが行います。
- データベースとの連携……PHPはデータベースとの連携を目的として開発された言語です。そのため他の言語より容易にデータベースとの接続およびそれを活用したWebアプリケーションの開発を行えます。
PHPの環境構築方法
PHPはApacheと呼ばれるWebサーバーとセットでインストールする必要があります。
PHPのインストール
PHPのダウンロードサイトからバージョンを選択し、ダウンロードします。ダウンロード完了後、圧縮ファイルを任意のディレクトリに解凍するとインストール完了です。
Apacheのインストール
Apacheのダウンロードサイトからバージョンを選択し、ダウンロードします。ダウンロード完了後、圧縮ファイルを任意のディレクトリに解凍するとインストール完了です。
- Apacheとは
Webサーバーソフトウェアの一つです。Webサーバーを構築する際にはWebサーバーソフトウェアが必要です。Apacheはオープンソースのソフトウェアであるため誰でも利用可能であり、モジュールによって基本機能から拡張をできるため世界で広く利用されています。
上記でPHPを利用できる環境が整います。
PHPの書き方〜基本〜
PHPはWebサイトを構成するHTML内に書き込みます。
HTMLとは、Webサイトを作成するために作られた言語で、インターネット上に公開されているWebサイトのほとんどはHTMLで記載されています。HTMLではハイパーリンクという機能を用いて動画や画像、音声などのファイルをページと関連付け、情報を整理できます。
基本的な書き方
PHPは開始タグ 『<?』 と終了タグ 『?>』 の間に処理を記載します。改行はコードに影響を与えないため、自分たちがわかりやすいようにソースコードをレイアウトできます。
この際、コードとして実行しないコメントは、”//”または“#”のあとに記載しましょう。コメントが2行以上に渡る際は”/*”と”*/”の間に記載すれば実行されません。これをコメントアウトと言います。コメントアウトしないまま記載すると、記載部分がエラーとなりコードが実行できないため注意しましょう。
PHPの基本構文・用語
最後に、PHPの基本構文や、よく使われる用語についてご紹介していきます。
print関数
文字を表示する際はprint関数を用います。printの後に表示したい文字列を記載することで表示可能です。
print “任意の文字列”;
変数を作成する
変数は数値や文字列を格納したり、取り出したり、参照したりさせる箱のことです。PHPでコードを実行するとコンピュータのメモリに変数の値は保持され、コードが終了すると値はメモリから開放されます。定数はコード実行中不変の値であるのに対して変数は条件によって値を変更できます。
PHPにおいて変数は下記のように定義します
$ 任意の変数名;
変数名は大文字と小文字について区別される他、戦闘に数字は利用できません。記号は”_”(アンダーバー)のみ利用できます。
変数に値を格納する
値を格納する際は”=”(代入演算子)を用いて下記のように記載します。
$dataString = “おはよう”;$dataValue = 2;
格納したデータを参照するにはprint文を利用します。
$dataValue = 2;print $dataValue;
配列を作成する
配列とは複数の箱を持った変数のことです。複数の箱を識別できるようにインデックスと呼ばれる番号を振り、整理します。
PHPにおいて配列は変数と同様に定義します。
$ 任意の配列名;
データを格納する際は定義した配列の後部に”[]”を記述し、下記の通り格納します。
$chomiryo[0] = “砂糖”
$chomiryo[1] = “塩”
$chomiryo[2] = “酢”
$chomiryo[3] = “醤油”
$chomiryo[4] = “味噌”
データを参照する際は、変数と同様にprint文を用います。またデータを上書きしたい際は、同じインデックスにデータを再度格納することで上書きされます。
if文
条件を判断させ、処理を分岐できます。
if(条件文)
{
処理1-1;
処理1-2;
処理1-3;
……
}
else if(条件文)
{
処理2-1;
処理2-2;
処理2-3;
}
else
{
処理3-1;
処理3-2;
処理3-3;
}
条件式には条件演算子を用いてTrue or Falseとなる式を記載します。条件が複数に渡りif文では複雑になる場合はswitch文を用いましょう。
switch文
条件式に複数の条件が存在するときはswitch文を用います。判定用の変数を定義し、それぞれの変数に応じた処理を記載していきます。
$ 判定する変数 = 値aswitch($判定する変数)
{
case 値a:
処理a;
break;
case 値b:
処理b;
break;
……
default:
処理c;
}
複数の条件式の中にif文を記載するような複雑な条件分岐は、動作を想像することが難しく、プログラムが意図した挙動にならない可能性があります。そのためswitch文を利用しプログラムとしても見た目も理解しやすいように記載しましょう。
while文
初めに条件を判断し、その条件が成立する間処理を繰り返したい際はwhile文を用います。
while(任意の条件式) 実行したい処理;
条件式がTrueとなる時、設定した処理を実行し続け、Falseとなったタイミングでループを抜けます。while文はデータの数が未知である時の繰り返し処理に有効です。フォルダ内のファイル名を全て列挙したり、特定の値が入力されるまでエラーを吐き続けたりするなどといった処理に有用です。
for文
for(初期値式; 条件式; 増減式)
{
処理I;
処理II;
処理III;
……
}
初期化式に設定された数値から開始し、処理が繰り返されるたびに条件式で数値を判定します。Trueの場合は記載した処理を実行します。処理が実行された後に増減式によって初期値に増減を加え、次の処理の前に条件式で判定させます。Trueの場合は再度処理を繰り返しFalseとなったタイミングでループを抜けます。
引数
作成した関数の中で利用する値を、関数の外で設定して与えることができ、この値を引数と呼びます。引数にはデフォルト値が必要で、引数が設定されている関数について引数を指定しないで実行するとエラーが表示されます。
引数がなくてもエラーを吐かないようにするには、引数のデフォルト値を関数側で設定すれば問題ありません。これにより、引数がない場合はデフォルト値に代替されてエラーを吐かずに実行されます。
ユーザー定義関数
ある程度ボリュームのある処理や、使用頻度が高い処理について機能ごとにひとまとめにし、関数として定義できます。これをユーザー定義関数といいます。
処理の流れを変えずに、別の位置にある処理を再利用することでコードと処理を効率化できます。
function 任意の関数名()
{
任意の処理1;
任意の処理2;
……
}
定義した後、関数名を記載することで利用できます。
返り値
ユーザー定義関数に引数で数値を渡し。結果として受け取るデータを返り値と呼びます。処理後にreturn文を用いて、返したい変数を指定することで関数が値を返せます。
クラスを作成する
PHPはオブジェクト指向の言語です。そのためクラスを作成することで効率よくコーディングを行えるように設計されています。クラスとはオブジェクトを抽象化したものです。
オブジェクト指向
ソフトウェアを開発する際、対象を具体的なモノとして定義し共通の変数や処理を行う関数を用いてコード量を減らすように設計することです。
PHPではページを中心にコーディングを行っていくため、1つのファイル内の処理量が膨大になる可能性があります。ファイルごとに関数を用意していると、機能の変更が必要になった際全てのファイルの変更箇所を修正しなければなりません。
そこで処理をするモノと処理に分けてコーディングをしておけば処理内容のみを変更することで複数のモノが行う処理を一括で変更できます。
PHPにおいてclassは下記の通り定義します。
class 任意のクラス名
{
public $任意の変数 = 任意の値
public function 関数名()
{
任意の処理;
}
}
インスタンス
クラスを実際に利用して処理を行う際は抽象化されていたオブジェクトを具体化します。具体化されたオブジェクトをインスタンスと呼びます。
メソッド
クラスに所属しているグループのことをメソッドと呼びます。クラス内ではある程度意味がまとまった処理や繰り返し利用される処理についてひとまとめにし、メソッドとして定義します。メソッドを活用することで同一処理を何度も記載する必要がなく生産性を向上できます。
おわりに
PHPはサーバーサイドのインタプリタ言語であるため開発スピードが速く、コーディングの量を削減できます。無償で提供されており利用できるライブラリやマニュアルも豊富なため初心者がWebアプリを使う言語として選定する際にも選択可能な言語です。データベースとの相性も良いため登録フォームや確認メールの送信などを伴うECサイトの構築などに向いています。
ここで紹介した基本文法や、各種Webサイトに展開されているライブラリ集などを参照しながら、Webサイトの構築方法を学習してみましょう。
WEBでのお問い合わせはこちら