PHPの基礎知識についてまとめました。PHPとHTMLとの違いや、導入方法、基本的な書き方までまとめました。ステップバイステップで解説しているので、ビギナーの方にもぜひ読んでいただければと思います。
PHPの基礎知識
PHPとはそもそもどういったプログラミング言語なのでしょうか?PHPの基本的な知識や、HTMLとの違い、PHPを使うことのメリットについても見ていきましょう。
Webページができている仕組み
少し唐突ですが、Webページとはどうやって表示されているかご存じでしょうか?
おおまかに言うと、WebページはHTMLとCSSという2種類の言語から構成されています。HTMLにページ構造やコンテンツを書いていて、テキストの装飾やページデザインはCSSが担当しているのです。
例えば、最小限の構成だと下のようなコードでページが表示できます。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>サンプルWebページのタイトル</title> <link rel="stylesheet" href="sample.css"> </head> <body> <h1>ページの見出し</h1> <p>サンプルのテキストです。</p> </body> </html>
6行目で読み込まれているCSSファイルは下の通りです。
body { font-size: 62.5%; } h1 { color: #333; font-size: 3.0em; padding: .25em 0 .25em .25em; border-bottom: 2px solid #ccc; } p{ color: #333; font-size: 1.6em; margin-left: 1.5em; }
このように、HTMLとCSSで役割分担をして、Webページはつくられています。この他に、ページに動きをつけるJavaScriptを使っていたりもしますが、基本的にはHTMLとCSSがあればWebページは表示できます。
HTMLについては、下の記事もご覧いただければと思います。
» コンテンツ制作者必見!ブログ記事に欠かせないHTMLタグとその使い方
CSSはこちらの記事で解説しています。
» 知っておくと役に立つ!レスポンシブデザイン系CSSツール6選
静的なページと動的なページ
さて、HTMLについてもう少し考えてみましょう。
基本的に、HTMLはページに対して1つ必要です。Webサイトが10ページであれば、10個のHTMLファイルが必要になるのです。ページの内容がちょっとでも違うのであれば、別々のHTMLがいるのです。実はこれ、とても不便に感じる時があります。
例えば、皆さんはいまブログ記事を見ていますよね?このページのサイドバーには、「最新記事」という項目があります。下の部分です。
「最新記事」の部分には、新しいブログ記事へのリンクが表示されています。つまり、新しい記事が出ると、この部分の内容が変わっていくのです。
「最新記事」は、他のページにもたくさん表示されています。新しい記事が出る度に、全てのページのHTMLを書きかえなければいけないのでしょうか?できないことはないのですが、とっても面倒ですよね。
そこで使われるのが、その時々によってページの内容を変えて出力する方法です。プログラムを使って、その時々に応じた内容でHTMLを生成するのです。これを動的なページと呼びます。
動的なページであれば、プログラムが新しい記事を読み込んで「最新記事」を表示してくれます。HTMLを書きかえる必要がなくなるので、楽ちんですね。
「最新記事」を例にあげましたが、この他にも動的なページが役立つシーンはたくさんあります。ユーザーの入力内容によって表示を変えたり、時間や日付によって内容を変えることもできます。
一方で、いつでも内容の変わらないページのことを静的なページと呼びます。どちらが優れているかは一概には言えないのですが、動的なページが便利であることはご理解いただけたかと思います。
PHPとは?
PHPの解説に入っていきましょう。
動的なページを生成するための言語はいくつもあるのですが、その中でも群を抜いて使われているのがPHPです。
PHPはオープンソースのプログラミング言語で、Webページの開発に使われています。ウェブサーバー上で動作することで知られ、ApacheやMySQLなどと併用して使われることが一般的です。
PHPはさまざまなシーンで使われていて、いまではインターネット上に存在している数多くのWebページがPHPで制作されています。WordPressやMovable TypeなどのCMSもPHPで作られており、Web制作の分野では欠くことのできない言語になっています。
なお、PHPの最新版はバージョン7系となっています(記事執筆時点)。サーバーやCMSなどの動作要件を確認して、最適なバージョンを選択することが必要です。
PHPを使うことのメリットとは?
PHPがここまで使われているのは、なぜなのでしょうか?それにはPHPが持つ魅力的なメリットがあるからです。PHPを使うことの代表的なメリットを6つ選んでご紹介します。
学習コストが低い
PHPは学習コストが低いプログラミング言語です。言い換えれば、比較的短い期間で習得することができるということ。初心者におすすめのプログラミング言語として、PHPの名前もよくあがっています。
PHPが取り組みやすい言語なのは、ちゃんとした理由があります。開発環境が作りやすいことが理由の一つです。MAMPやXAMPPなどのツールを使えば、初心者でもすぐにPHPの導入ができます。導入方法は記事の後半でご紹介します。
他にも、コンパイルが必要ないことや情報量の多さ、コードの書きやすさなども理由としてあげられます。
大規模案件にも対応できる
PHPは初心者にも最適なプログラミング言語だと述べました。それにも関わらず、PHPは大規模な案件でも対応できるというメリットがあります。
実際にPHPを採用している例も多く、有名なところだとYahoo!が知られています。SNSのFacebookも、PHPから派生したHackというプログラミング言語で作られています。
標準関数が豊富
PHPはWebページの制作を想定して開発されたプログラミング言語です。Webページ制作に役立つ数多くの機能を備えています。
いわゆる標準関数の数も非常に多く、Webページの制作では便利なものが多いです。例えば、文字列の操作やフォーム、ファイル操作、データベース処理など。
標準関数については公式マニュアルにも載っています。
逆引きのできる一覧サイトなどもあるので、PHPを使う時に活用したいところです。
フレームワークの数が多い
PHPには便利なフレームワークが数多く知られています。PHPの開発が格段に効率化できるので、フレームワークを利用した案件は多いです。
有名なところだと、LaravelやCakePHP、Symfonyあたりがよく使われています。
» Laravel – ウェブ職人のためのPHPフレームワーク
» CakePHP – Build fast, grow solid | PHPフレームワーク
» Symfony, High Performance PHP Framework for Web Development
PHPフレームワークについては、下の解説記事をご覧いただければと思います。
» 人気のPHPフレームワークまとめ!特徴や違いについて解説
情報量が多い
PHPは1995年から使われているプログラミング言語です。歴史も長く、国内外で広く使われているのです。そのため、書籍やインターネットなどで簡単に情報が手に入ります。
情報量が多いことは、PHPを学びはじめたビギナーには助かることです。それに加えて、高度な開発を行う時のヒントや、問題が起きたときの解決策も見つけやすいと言えるでしょう。
日本語の公式マニュアルもあります。
案件が多い
PHPは他のプログラミング言語と比較しても案件の数がとても多いです。それはなぜなのでしょうか?WordPressを例に出して考えてみましょう。
» Blog Tool, Publishing Platform, and CMS — WordPress
WordPressは日本だけでなく世界中で最も使われているCMSでしょう。世界中の4分の1のWebサイトは、WordPressで制作されていると言われるほど。Web制作の分野では、もはや業界標準になっています。
このWordPress、そのほとんどがPHPで作られています。WordPress本体だけでなく、テーマやプラグインもPHPで作られています。
こういった背景もあって、Web系ではPHP関連の案件が数多いのです。
なおWordPressについては下の記事でも解説していますので、併せて参考にしていただければと思います。
» WordPressのカスタマイズに最適!ブランクテーマ5選
» WordPressのカスタマイズで頻出の条件分岐タグについてまとめた
» WordPressでSNSシェアボタンが設置できるプラグイン5選(+OGPの設定方法)
» CTAって?設置のコツと代表的なWordPressプラグイン5選
PHPの導入方法(Macの場合)
ここでは、PHPを導入する方法についてご紹介します。Macを例にあげて、難易度別に3つの方法を見ていきましょう。
初級編
PHPを導入する方法として、最も簡単なのはツールを使った方法でしょう。中でも一番おすすめなのはMAMPです。
MAMPを使えば、いわゆるLAMP環境(Linux、Apache、MySQL、PHP)を簡単に作ることができます。MacでPHPの開発を行うのであれば、ぜひとも活用したいツールと言えます。
もう一つ、MAMPと同じようなツールとしてXAMPPが知られています。
» XAMPP Installers and Downloads for Apache Friends
MAMPはMac専用のツールなのですが、XAMPPはWindowsにも対応しているクロスプラットフォームのツールです。
いずれにしても、ツールをインストールして簡単な設定を行うだけでPHPの導入は完了します。これからプログラミングをはじめるビギナーの方にもおすすめな方法です。
中級編
初級編ではMAMP/XAMPPというツールを使った方法をご紹介しました。MAMPをインストールすると、PHPと同時にApacheなどの開発に必要なツールがインストールされました。
実は、MacにはもともとPHPとApacheが備わっています。せっかくあるのだから、それを活用してPHPの開発環境を整えるのも手です。
ここからはMacに備わっているPHPを使って、開発環境を整えるまでの手順をご紹介しましょう。
まずはApacheを動かす必要があります。Apacheを使うには、ターミナルから専用のコマンドを実行します。下にApache関連のコマンドをまとめておきましょう。
# Apacheを起動する $ sudo apachectl start # Apacheを停止する $ sudo apachectl stop # Apacheを起動する $ sudo apachectl restart
上のコマンドを使ってApacheを起動したら、ブラウザで下のURLにアクセスしてみてください。「It works!」という文字が表示されれば、Apacheが正常に動作していることになります。
http://localhost/
Apacheの起動確認ができたら、PHPが動くように設定を行います。httpd.confというファイルを編集するのですが、ちょっとわかりづらい場所にあります。
/etc/apache2/httpd.conf
このファイルを開いたら、下の行を探してください。
#LoadModule php5_module libexec/apache2/libphp5.so
この行の先頭にあるシャープを削除して、下のようにします。
LoadModule php5_module libexec/apache2/libphp5.so
httpd.confの編集は以上です。保存をして、ファイルを閉じてください。
さて、これでPHPが動作する環境が整いました。設定ファイルを読み込ませるために、下のコマンドを打ってApacheを再起動してください。
$ sudo apachectl restart
これでPHPの実行環境が整いました。
番外編
番外編として、クラウドサービスを利用する方法をご紹介しておきましょう。
ここまでの方法では、ローカルPCにPHPをインストールして実行環境を作りました。これだと、PCが違えばまた新たにPHPをインストールする必要があります。PCが3台あれば3回、10台あれば10回の導入作業が必要になるということ。いつも決まったPCで開発を行うのでなければ、これでは不便でしょう。
そこで使えるのが、クラウドIDEです。Webブラウザからプログラミングを行うタイプのサービスで、PCに縛られることなく開発を行っていくことができます。PHPをインストールしたり初期セットアップを行う手間も必要ないので、すぐにPHPの開発がはじめられます。
クラウドIDEの中で最も有名なのは、Cloud9でしょう。
» Cloud9 – Your development environment, in the cloud
2016年にAmazonに買収されたことでも有名な、大手クラウドIDEサービスです。ブラウザさえあれば、いつでもどこでも開発を行うことができます。対応している言語はPHPをはじめとして、Ruby on RailsやNode.js、Python、HTMLなど幅広いです。
Cloud9の基本や使い方については、下の記事で詳しく解説しています。こちらの記事ではHTML5のプロジェクトを作成する手順をご紹介していますが、PHPの場合も手順は同じです。
» クラウドIDE「Cloud9」とは?特徴や基本的な使い方
PHPの基本的な使い方
PHPの基本的な使い方に入っていきましょう。サンプルコードも載せてあるので、ぜひ実際に動かしてみてください。
PHPファイルの作り方
PHPファイルを作る方法ですが、とても簡単です。ファイルの拡張子として.phpを指定すればOKです。.phpという拡張子がついていれば、自動的にPHPファイルとして扱われます。
PHPファイルを実行する
Javaなどのプログラミング言語であれば、プログラムを実行する前にコンパイルを行う必要があります。コンパイルとは、コードを機械語に変換して実行可能な状態にすることを言います。
PHPファイルはそういった操作は必要なく、ChromeなどのWebブラウザからPHPファイルを指定するだけでプログラムが実行されます。
試しに、下のPHPを実行してみましょう。
index.phpというファイルを作成して、ドキュメントルートに配置してください。
<html lang="ja"> <head> <meta charset="UTF-8"> <title>sample</title> </head> <body> <?php echo "Hello World!!"; ?> </body> </html>
次にChromeなどのWebブラウザを開いて、URL入力欄にlocalhostと入力。ページをひらいてください。
下のように、「Hello World!!」と表示されたページがひらいたでしょうか?
このコードではPHPを使って「Hello World!!」という文字列を出力しています。簡単な例でしたが、PHPファイルを実行させることができました!
ところで、「Hello World!!」ページのソースコードは下のようになっています。
<html lang="ja"> <head> <meta charset="UTF-8"> <title>sample</title> </head> <body> Hello World!! </body> </html>
7行目がPHPで出力した部分です。PHPコードがしっかりとHTMLに置き換わっている様子がわかりますね。
PHPコードを書く
さて、PHPの動かし方がわかったところで、具体的な書き方に移っていきましょう。
基本的な書き方
まずはPHPコードの基本的な書き方から。
上のサンプルでは、ページに「Hello World!!」と出力するPHPコードが含まれていました。下でハイライトしている部分です。
<html lang="ja"> <head> <meta charset="UTF-8"> <title>sample</title> </head> <body> <?php echo "Hello World!!"; ?> </body> </html>
PHPコード以外の部分を見てください。おなじみのHTMLコードがそのまま書かれていることがわかります。PHPコードはこのように、HTMLコードと混在して書くことができるのです。
ただし、一つだけ注意すべきことがあります。7行目と9行目のPHPコードを見てください。PHPコードの部分は、このように<?phpと?>で囲まなければいけません。<?phpを開始タグ、?>を終了タグと呼びます。このタグを書き忘れると、エラーの原因となることもあります。注意しましょう。
もう一つ。8行目の行末にセミコロンがありますね。これも忘れずにつけるようにしてください。
代表的な文法
いくつか、PHPでよく使われる文法をご紹介しておきましょう。
if文
条件分岐をするための構文です。if文については他のプログラミング言語でも使われるものなので、ご存じの方も多いかと思います。
<?php if (条件文) { // 実行される処理 } ?>
条件に合致したはTRUEが返され、if文の中にある処理が実行されます。条件に合わない時はFALSEが返され、処理が実行されません。
条件に合わないときの処理も書きたいときは、elseを使って下のように記述します。
<?php if (条件文) { // 条件に合う時の処理 } else { // 条件に合わない時の処理 } ?>
elseにif文を続けて、2つ目の条件を付け加えることも可能です。
<?php if (条件文1) { // 条件1に合う時の処理 } else if (条件文2) { // 条件2に合う時の処理 } else { // 条件1にも条件2にも合わない時の処理 } ?>
上のような書き方をすることで、細かく条件分岐をさせることができます。
for文
繰り返し(ループ)の処理を行う時に使う構文です。if文と同じく、for文もお馴染みの文法の一つでしょう。
<?php for (初期化; 繰り返しの条件; 増減処理) { // 繰り返し実行する処理 } ?>
forの後に書かれた部分に注目してください。for文は繰り返し処理を行う構文なのですが、いつまで繰り返しを行うのかを指定しておかなければいけません。
一つ例をあげてみましょう。
<?php for ($i = 1; $i <= 10; $i++) { // 繰り返し実行する処理 } ?>
この例では、変数を使っています。iという文字列が変数にあたります。PHPでは、変数であることを明示するために、変数の頭に$を書くことが決められているのです。
条件の部分を順に見ていきましょう。設定したiという変数に1を代入して、初期化を行っています。繰り返し処理が1回終わったら1を足して、条件に合致していれば再度for文の中の処理を実行しているのです。
さて、ここでさらに2つ、確認しておきたいことがあります。上のfor文の例で、下の部分がありますね。
$i <= 10;
$iは変数のことですが、その後にある<=は何なのでしょうか?これはいわゆる演算子の一つで、「以下」という意味がある比較演算子です。PHPの代表的な比較演算子は下表の通りです。
A == B | AとBが等しい |
---|---|
A != B | AとBが等しくない |
A < B | BよりAが少ない |
A > B | BよりAが多い |
A <= B | BよりAが少ないか、等しい |
A >= B | BよりAが多いか、等しい |
演算子にはその他にも、代数演算子や論理演算子などがあります。演算子を活用することは、良いプログラムを書くことの基本です。コードを書きながら身につけていってくださいね。
もう一つ確認しておきたいことは、下のコードの部分にあります。
$i++
これには、1ずつ加算をしていく意味があります。for文の繰り返しの処理を1回行うと、変数iに1が加算されていくのです。これはif文で頻繁に使われる文法なので、ぜひ知っておいてください。
while文
while文も繰り返し処理を行う構文なのですが、if文とは書き方が異なります。下のコードを見てください。
<?php // 初期化 while (条件) { // 実行する処理 // 増減処理 } ?>
whileの後に条件を、処理の後に増減処理が書かれていることがわかります。また、初期化するコードがwhile文より前に書かれています。このあたりはif文と違うところですね。
一方で、繰り返し実行する処理については同じです。while文の条件を満たしている限り、指定した処理が繰り返し実行されます。
while文の条件の書き方を具体的に見ておきましょう。
<?php $i = 1; while ($i <= 10;) { // 実行する処理 $i++; } ?>
if文と同じ条件なのですが、書き方が異なることがおわかりいただけるかと思います。
ところで、if文とwhile文の違いは書き方だけなのでしょうか?せっかくなので、両者の使い分け方を表にまとめておきましょう。
if文 | 繰り返す回数がわかっている場合。 |
---|---|
while文 | 繰り返す回数がわからない場合。またはbreakさせたい場合。 |
if文とwhile文は基本的にはこの内容を基準に使い分けるといいでしょう。
PHPに役立つツール○選
最後に、PHPの開発に役立つツールをご紹介します。PHPを使った開発が捗るので、積極的に導入してみてください。
※MAMP/XAMPPは上で取り上げたので、ここでは割愛します。
PhpStorm
» PhpStorm IDE :: JetBrains PhpStorm
PhpStormはJetBrains社が提供しているIDE(統合開発環境)のことです。
IDEとは、簡単に言うとシステム開発に必要な機能がひとまとまりになったツールのこと。プログラミングに必要なテキストエディタやコンパイラ、実行環境、デバッガなどの機能が使えることが一般的。
PhpStormは数あるIDEの中でも、PHPを使った開発に役立つ機能が盛りだくさんです。はじめからPHPに合うセッティングがなされているので、すぐにPHPの開発をはじめることができるでしょう。
PhpStormを使うには、継続のサブスクリプションプランを購入する必要があります。新規ユーザーの場合、初年度は年額$ 199となっています(記事執筆時点)。2年目以降は料金が下がっていく料金体系になっています。
Aptana
» Aptana
AptanaもPHPの開発に使えるIDEです。IDEの最大手Eclipseをベースにしているので、非常に高機能です。オープンソースのため、無料で使うことができます。PhpStormも良いIDEなのですが、コストを抑えたい方にはAptanaがいいでしょう。
Aptanaの特徴は無料なことだけではありません。カスタマイズ性も高く、プラグインを導入して拡張をすることもできます。PHP以外にも、HTML/CSSやJavaScript、Ruby on Railsなどの開発が可能です。
Atom
» Atom
AtomはGitのホスティングサービス最大手のGitHubがリリースしているオープンソースのテキストエディタです。無料で使うことができ、開発も精力的に行われています。
AtomはそもそもWeb開発向けに作られているテキストエディタです。そのため、PHPやHTML、CSS、JavaScriptなどのWeb言語との相性が非常に良いです。カスタマイズ性にも優れているので、自分好みの設定を作っていくことも可能です。
欠点としては、メモリを消費しがちなことでしょう。Atomを使っていると、PCの動きが遅くなってしまうこともあります。もしAtomが遅いと感じたら、使っていないパッケージを削除するなどの対策を施すようにしてください。
phpMyAdmin
言わずと知れたMySQLサーバの管理ツールです。ブラウザから使うことのできるツールで、SQLコマンドが打てないビギナーの方にもおすすめなツールです。
phpMyAdminはMySQLデータベースの操作だけでなく、CSVやSQLなどの形式でインポート・エクスポートをすることも可能です。PHPだけでなく、Web制作では日常的に使うツールになります。
なおphpMyAdminは個別にインストールして使うこともできますが、MAMPやXAMPPなどのツールにもパッケージされています。バージョンによって機能も異なりますので、必要に応じて手動でインストールするようにしてください。
Sequel Pro
こちらもMySQLを操作するためのツールです。インストールも簡単なので、Macがあればすぐに使いはじめることが可能です。オープンソースのツールで、寄付を募っているドネーションウェアとして提供されています。
Sequel Proには、クエリブックと呼ばれる機能がついています。これは、よく使うSQLコマンドを保存しておける機能のこと。頻繁に実行するSQLがあるなら、MySQLの操作が効率化できます。他にも、接続先をお気に入りとして保存しておけることや、接続方式などのセキュリティ面、操作性の高さなどがあげられます。
MySQLのクライアントとしてphpMyAdminしか使ったことのない方は、ぜひ一度Sequel Proを試してみることをおすすめします。
あとがき
PHPの基礎知識や導入方法、基本的な使い方についてまとめました。記事で述べたように、PHPはWeb業界では頻繁に使われる言語です。ご紹介した内容を参考にしていただき、PHPをマスターしていっていただければと思います。