【PHP入門】環境構築 初心者でも安心!基礎から学べるプログラミング講座~

PHPとは?

PHPとは、「Personal Home Page」のことで、名前の通りWeb開発に特化している言語です。
また、人気があり求人数も多い上に覚えやすいため、初心者でも手をつけやすい特徴があります。

環境構築とは

初めてのプログラミング言語を触る際、環境構築を必ず行います。いきなりコードを書いても、自分のPCにその言語を動かす環境を整えていなければ、プログラムが動かないからです。バットとボールとグローブが無いと、野球ができないことと一緒です。

〜環境構築〜

PHPの環境構築方法はいくつかあります。
今回は、その中でも簡単な「MAMP」というソフトを使った環境構築を行います。

MAMPとは

MAMPとは、
M:Macintosh
A:Apache
M:MySQL
P:PHP
の略であり、Webアプリケーション開発に必要なソフトウェアを、まとめてPCにインストールすることが出来ます。
知らない英単語ばっかで混乱するかもしれませんが、今は「MAMPをインストールしたらWeb開発が出来る様になる」くらいの認識で大丈夫です。

1.MAMPのダウンロード

下記のMAMPのホームページにアクセスして、MAMPをダウンロードします。
今回は、バージョン5.5をダウンロードします。
MAMP:https://www.mamp.info/en/downloads/
※本記事において、MAMPのバージョンは5.5となっていますが、日々アップデートされているため、最新バージョンは異なる可能性があります。


ダウンロードが開始します。
※広告が表示されますが、画面のグレー部分を押下すれば消えます。

2.MAMPのインストール

ダウンロードしたファイルを実行します。
インストールが開始するので、「続ける」を押下します。

「続ける」を押下します。(プリントや保存しても良いです。)

「続ける」を押下します。(プリントや保存しても良いです。)

同意の確認が出るので、「同意する」を押下します。

今回は、インストール先を変えずに「続ける」を押下します。

「インストール」を押下します。

インストールが開始するので、完了まで待ちます。

「インストールが完了しました。」と出たらインストール完了です。

インストーラーは不要になったので、「ゴミ箱に入れる」を押下します。

MAMPのインストールは以上です。

3.MAMPの起動

MAMPのインストールが完了すると、アプリケーションに「MAMP」と「MAMP PRO」が入ってるはずです。
※「MAMP PRO」は「MAMP」に機能が追加された有料版なので、今回は使いません。

MAMPのフォルダを開き、「MAMP.app」を起動します。

起動すると広告が出てくるので、左下のチェックを外し、閉じます。


「Start Servers」を押下します。

以下の部分が緑になれば、正常に起動出来たことになります。

4.確認

起動後、勝手にブラウザが開き以下ページが表示されます。
このページが表示されると、MAMPの起動は完了です。

ちなみに、上記ページのURLは「http://localhost:8888/MAMP/?language=English」です。
自動で表示されなかった場合は、URLへアクセスしてみて下さい。

5.Let’s Programming!

テキストエディタを開き、以下を入力して下さい。(テキストエディタはAtomを使用します。)

<?php
echo "Hello World!";
?>

※「Atom」の導入方法については、以下の記事を参考にして下さい。
【初心者必見】MacにAtomをインストールし、日本語化する方法

ファイル名を「HelloWorld.php」にして、「/Applications/MAMP/htdocs」に保存する。


ブラウザを開き、「http://localhost:8888/HelloWorld.php」へアクセスする。
画面に「HelloWorld!」と表示されたら成功。(以下ブラウザはSafari)

環境構築まとめ

PHPの環境構築は以上です。
MAMPを使うことで、PHPだけでなく、Web開発の環境も同時に作りました。
環境構築がうまく行かない場合は、MAMPのインストールが失敗してたり、ファイルを置く場所やURLが間違ってたりするので、もう一度確認してみて下さい。

無料体験でも本一冊以上の学びを身につけることができます。プログラミングへの第一歩を進めてみてください。

お問い合わせフォームを作ることを目指します。
PHPを学べば、ユーザーからデータを受け取りそれを表示するなど、実際のWebサービスで必要な機能を作ることが出来ます。
HTMLでは決められたテキストしか表示することができませんでした。
PHPを使うと、見る人や状況に応じて、表示するテキストを変えることができます。

PHPはHTMLに埋め込んで使うことができます。<?php 〜 ?>の中にPHPの命令を書いていきます。<?php 〜 ?>の部分がHTMLに変換された上で表示されます。

PHPでは文末にセミコロン「;」を使って文を区切ります。 セミコロンを忘れるとエラーが起きるので注意しましょう。また、「//」から行末まではコメントになります。動作には関係しない情報で、主にメモなどに用いられます。

「echo」は文字列などを出力するための命令です。文字列を出力する場合はシングルクォーテーション「’」かダブルクォーテーション「”」で囲みます。

プログラミングを使えばコンピュータに計算させることが出来ます。計算はコンピュータの最も得意なことの一つです。足し算は「+」、引き算は「-」、掛け算は「*」、割り算は「/」で表します。PHPでは割り算の余りを計算することもでき、「%」で表します。

PHPには、「文字列」や「数値」などのデータの種類があります。「’Hello’」,「’a’」などは文字列、「1」,「3.14」などは数値となります。

図のように、数値として「 5 + 2 」を行うと7が出力されます。ただし「 5 + 2 」をシングルクォーテーションやダブルクォーテーションで囲むと、文字列と解釈されそのまま出力されます。

プログラミングの重要な概念の1つである「変数」を学びましょう。変数とは、データの入れ物です。頭に「$」記号をつけることによって変数を定義します。「$変数名 = 値;」で様々な値を変数に入れることが出来ます。「=」はプログラミングの世界では、右辺を左辺に代入するという意味です。

変数を使うメリットは大きくわけて2つあります。 ①データに名前をつけることでそのデータが何を表しているかを明確にできる。②複数回使うデータを1つの変数に入れておくことで、変更があった場合も1箇所の修正ですむ。

ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むとその部分が変数に入っている値で置き換えられます(変数展開)。シングルクォーテーションで文字列を囲んだ場合は変数展開されず、変数が{}で囲まれていてもそのまま文字列としてみなされます。

if文を使うと、条件に応じて処理を分岐することができます。
if文は図のように書きます。
条件が成り立つ場合、{}の中の処理が実行されます。
条件が成り立たない場合は処理が実行されません。

ifと組み合わせてelseを使うと、「もしも〜だったら・・・、そうでなければ・・・」といった条件分岐が可能になります。if文の条件が「false」であった場合、elseの中の処理が実行されます。


if, elseifによる分岐が多く複雑な場合、switch文で書き換えるとシンプルで読みやすいコードにできます。switch(式)の(式)がcaseの値と一致したとき、そのブロックが実行されます。caseのどれにも一致しなかった時、defaultのブロックが実行されます。

while文

while文

while

while文もfor文と同様に、繰り返し処理の一つです。
条件式を指定し、それがtrueの間、処理が繰り返し実行されます。
for文の時のように変数$iが自動的に増えていかないため、ここではループのたびに「$i ++;」を行っています。

break

break

break文は現在のループを強制的に中断する命令です。for, while, foreachなどの繰り返し文の中で利用できます。break文はif文などの条件文と組み合わせて利用するのが一般的です。

continue

continue

ループそのものを完全に抜けてしまうbreak文に対して、continue文は現在の周だけをスキップし、ループそのものは継続して実行します。
continue文もfor, while, foreachなどの繰り返し文の中で利用できます。

foreach

foreach

foreach文とは、配列または連想配列に対して、先頭のデータから順に繰り返し処理を行うための命令です。
以下のように配列のデータを1つずつ取り出して処理を行うことが出来ます。
「as」の後ろの変数に、ループの度にデータが先頭から順に代入されていきます。asの後ろの変数名は何を指定しても大丈夫です。

引数

関数

関数を呼び出す際、関数に値を渡すと、関数内でその値を利用することができます。この値を「引数」と呼びます。引数を関数内で使うには、それを受け取るための「仮引数」を、関数の定義時に指定しておく必要があります。仮引数が複数ある場合はカンマ(,)を用いて指定します。

戻り値

戻り値

return関数

関数は値を「返す」ことができて、この値のことを戻り値と呼びます。
関数を実行した結果、その関数実行部分が戻り値に置き換わるというイメージです。
戻り値は「return」で指定します。

フォームをつくろう

いよいよお問い合わせフォームをつくっていきます。
フォームの見た目はHTMLでフォームを作成し、入力値を取得するためにPHPを使用していきます。

フォームの準備をしよう

<form>

フォームを作りたい時は、HTMLの<form>タグを用います。
action属性にはデータを渡す先のURLを指定します。
method属性は値の送信の方法で、「get」と「post」のどちらかを指定します。getの場合は送信される値がURLに表示され、postの場合はURLに表示されません。

テキストボックスをつくろう

<input>

テキストボックスをつくるにはHTMLの<input type=”text”>を使います。name属性は入力された値を取得するときに使う名前です。後にフォームのデータを受け取るときに使用します。<input>タグは閉じタグが必要ないことに注意しましょう。

テキストボックス

テキストボックスをつくろう

<textarea>

改行を含む文章のためのテキストボックスをつくるにはHTMLの<textarea>タグを用います。
<input>タグと同様にname属性に、入力値を取得するときに使う名前を指定します。<textarea>タグは閉じタグが必要なので注意してください。

$_POST

送信ボタンをつくろう

<input>

送信ボタンをつくるには<input type=”submit”>を用います。
value属性に指定された値がボタン上に表示されます。

テキストボックスをつくろう

<textarea>

改行を含む文章のためのテキストボックスをつくるにはHTMLの<textarea>タグを用います。
<input>タグと同様にname属性に、入力値を取得するときに使う名前を指定します。<textarea>タグは閉じタグが必要なので注意してください。

$_POST

送信ボタンをつくろう

<input>

送信ボタンをつくるには<input type=”submit”>を用います。
value属性に指定された値がボタン上に表示されます。

$_POST

フォームのデータを
受け取ろう

$_POST

フォームで送信した値を受け取るには「$_POST」を使用します。
「$_POST」は連想配列になっています。[ ]の中に、<input>と<textarea>のname属性に指定した値を入れることで、それぞれの送信した値を受け取ることが出来ます。

セレクトボックス

セレクトボックスの作り方

<select><option>

セレクトボックスをつくるには図のように<select>タグの中に<option>タグを並べます。
<option>タグの中身が選択肢として表示されます。

セレクトボックス

選んだ選択肢の値を渡そう

<select><option>

セレクトボックスの値の渡し方を見てみましょう。
<select>タグには「$_POST」で値を受け取るためのname属性を指定します。
<option>タグのvalue属性が送信される値です。

フォームを完成させよう

変数展開for<option>

いよいよ最後の演習になりました!繰り返し処理と変数展開を用いて多数のoptionタグを作りましょう。
ただし、変数展開を用いる際はダブルクォーテーションで囲むようにしましょう。

クラスとインスタンス

クラス

クラス

それでは実際に注文サイトを作るために、メニュー1つ1つのオブジェクトを作っていきます。
オブジェクト指向では「クラス」というオブジェクトの設計図を作成し、クラス(設計図)を元にオブジェクト(実体)を生成します。

クラスとインスタンス

クラスの書き方

クラス

それでは実際にクラス(設計図)の書き方を見てみましょう。
クラスは図のように、「class クラス名」と定義し、「{}」の間に、そのクラスの内容を書いていきます。
クラス名は大文字で始めます。

クラスとインスタンス

インスタンス

インスタンス

クラス(設計図)を元に生成された実体を「インスタンス」と呼びます。インスタンスとオブジェクトは同じ意味で使われます。
インスタンスは「new」を用いて「new クラス名()」で生成できます。
「$変数名 = new クラス名()」のようにすることで生成したインスタンスを変数に代入しています。
なお、インスタンスの生成はクラスの外で行います。

クラス

それでは実際にクラス(設計図)の書き方を見てみましょう。
クラスは図のように、「class クラス名」と定義し、「{}」の間に、そのクラスの内容を書いていきます。
クラス名は大文字で始めます。


プロパティとメソッド

メソッドプロパティ

それではクラス(設計図)の中身を書いていきましょう。
クラス(設計図)にはそのインスタンス(実体)が持つ「プロパティ」と「メソッド」の2つを定義します。
プロパティとはインスタンスが持つデータのことで、メソッドはインスタンスに関連する処理(関数)のことです。

プロパティ

プロパティ

プロパティ

まずはプロパティ(インスタンスが持つデータ)について学んでいきましょう。
Menuインスタンスはインスタンスごとにそれぞれ違った料理名を持つので、その料理名のためのプロパティをMenuクラスに定義しましょう。

プロパティ

プロパティの書き方

プロパティ

プロパティは図のように「public $プロパティ名」のように定義します(publicについては後ほど説明するので気にしないでください)。
詳しい使い方は次のスライドで見ていきましょう。

プロパティへのアクセス

プロパティ->

「インスタンス->プロパティ名」とすることで、そのインスタンスのプロパティにアクセスすることができます(プロパティ名に$は不要)。
このように、プロパティにアクセスする際には「->」(ハイフン「-」と大なり「>」)を用います。

今度はクラス(設計図)にメソッドを定義していきましょう。
メソッドとはそれぞれのインスタンスが持つ関数のことです。

メソッド$this

メソッド内でインスタンスのプロパティやメソッドにアクセスしたい時には「$this」という特殊な変数を用います。
$thisはクラス内のメソッドの定義の中でのみ使用できます。
$thisはメソッドが呼ばれた時に、そのメソッドを呼び出しているインスタンスに置き換えられます。

コンストラクタ

コンストラクタ

__construct

「__construct」という特別なメソッドを定義すると、newを用いてインスタンスを生成するときに、このメソッドが自動的に呼ばれます。
このようなインスタンスの生成時に呼ばれるメソッドのことを一般的に「コンストラクタ」といいます。

コンストラクタとプロパティ

コンストラクタと引数

__construct

__constructメソッドは引数をとることができます。
newを用いてインスタンスを生成する際には引数を与えることができ、その引数の値が__constructメソッドに渡されます。

コンストラクタとプロパティ

$this__construct

図のように、__constructメソッド内で、$thisを用いてインスタンスのプロパティに値をセットすることができます。
インスタンスの生成時にプロパティをセットすることができるので便利です。

HTMLにPHPを埋め込もう

本格的にレイアウトを組んでいくために、HTMLにPHPのコードを埋め込んでいきましょう。
図のようにPHPのコードを埋め込むことで、HTMLのコードとPHPのコードを切り分けることができ、見やすくなります。

メニュー一覧を作ろう

以下のように4つメニューを表示していきます。
4つのメニューが入った配列を用意して、その配列に対して繰り返し処理を用いて、それぞれのメニューを表示していきます。

foreach文をHTMLに
埋め込もう

foreach文をHTMLに埋め込む際、右図のように書くことができます。
foreach文の「{」の代わりに「:」、「}」の代わりに「endforeach」と記述し、その間に処理を書いていきます。この処理部分にはHTMLのタグを書くことができるので便利です。
HTMLにforeach文を埋め込むときは右図のようにしましょう。

プログラミングおすすめ本