こんにちは、ひろゆきです。
僕はWebサービスをつくりたくてエンジニアになったのですが、プログラミング言語は数が多く仕様もさまざま。「プログラミングには興味があるけど、どの言語から手をつけるべきか分からない」という方も、多いのではないでしょうか?
今回プログラミング言語の中でもPHPをご紹介するのは、初心者でも比較的とっつきやすく、前知識がほとんどなくてもブラウザ上で動かすことができるので、エンジニア入門に適しているからです。
プログラミングでモノ作りをしたいと考えている方は、PHPから始めることをおすすめします。
今回は「無料PHPスクール」を運営している「株式会社ドリーム・シアター」の中田さんの情報提供の元、LIGブログでのif文やwhile文の事例など、PHPを勉強する前に知っておきたい基礎知識をまとめてみました。
中田斉道(なかた せいどう)さん PHP/Javaを中心としたWebシステム開発会社(株式会社ドリーム・シアター)を運営。また、開発実績を基に、未経験から23日間でWebプログラマーになることができる『無料PHPスクール』を開催中。 |
エンジニアになりたいという方は、ぜひ参考にしてください。
もくじ
そもそもPHPとは?
PHPとは、動的にWebページを作るためのプログラミング言語のことです。
PHP: Hypertext Preprocessor(ピー・エイチ・ピー ハイパーテキスト プリプロセッサー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。
引用元:Wikipadia
動的な指示がどういうことか、LIGブログを例に考えてみましょう。
LIGブログのトップページでは、新しく更新された記事が自動でトップページに表示されますが、HTMLとCSSだけではそういった動作を自動化できません。
PHPを使うと、新しく更新された記事を自動的にトップに表示する→以前更新された記事が繰り下がる、といったことが可能になります。
PHPの特徴
プログラミング言語にはJavaやC言語などさまざまな種類があり、それらでも動的な指示をすることは可能ですが、PHPには以下のような特徴があるためプログラミング言語の中でも幅広く使われています。
- 他言語よりも比較的文法が覚えやすい
- データベースとの連携が簡単
- Webアプリケーションの開発に特化している
加えて、PHPの特徴の1つに、HTMLと混在して書くことができるという点も挙げられます。別ファイルで書いたり保存したりするよりも、HTMLでマークアップしたものを直接PHPで動きを指定できるのは、便利ですよね。
(※PHPファイルの拡張子は「.html」ではなく「.php」となります。)
PHPでできること
そんなPHPでは、以下のようなアプリケーションを作成することができます。
- フォームメール
- ショッピングカート
- アクセスカウンタ
- ウェブログ
他にもアクセス解析や掲示板、RSSリーダーなどのサイトに必要なコンテンツが作れます。
また、PHPができればWordPressをカスタマイズすることができます。
LIGブログは実際にWordPressを利用しており、PHPなどをカスタマイズをして独自のブログデザインを構築しています。
WordPressを利用してブログやメディアを運営している方は、ご自身でカスタマイズするためにPHPを修得することをおすすめします。
PHPの仕組み
PHPでできることがわかったので、次は仕組みについてご紹介したいと思います。
PHPはサーバサイド・スクリプト言語として利用されており、Webサーバ上で動作し、Webサーバ上でPHPスクリプトの文書が要求されるたびに、そのPHPスクリプトが実行され、結果をウェブブラウザに対して送信する。
引用元:Wikipadia
スクリプト言語というのはプログラミング言語の一種であり、Web上での動的な動きを記述できる言語です。このスクリプト言語は、クライアントサイドとサーバサイドの2つに分けることができます。
クライアントサイド
クライアントという言葉のとおり、Webを閲覧してくれるユーザのことを表します。ユーザがWebを見るときに使うものは、「ブラウザ」ですよね。そのため、クライアントサイドのことをそのままブラウザと言い表すこともあるそうです。
つまりクライアントサイドとは、ユーザのブラウザ上で動作するすべてのものを指します。
HTMLやCSS、JavaScriptなどはブラウザ上で機能するものなので、これらを例として挙げることができます。
サーバサイド
サーバサイドというのは、HTMLファイルやCSSファイルを保存してあるWebサーバのことで、サーバでは「ユーザがリクエストしたことに対してデータを返す」ということを行っています。
ECサイトを例に考えてみましょう。
いままで購入した履歴を見たいときに、「購入履歴を表示」をクリックするのがユーザのリクエストだとすると、それに対しサーバサイドは「データベースから、そのユーザの購入履歴のデータを出す」ということを行います。
これが、「ユーザがリクエストしたことに対してデータを返す」ということです。
サーバについて
次は、PHPと関係が深いサーバについて詳しく見ていきましょう。
PHPはサーバサイドのスクリプト言語なので、PHPを記述する際にはサーバ、あるいはローカル開発環境が必要です。
サーバはレンタルサーバなどが有名ですよね。これは、実際にサーバをレンタルすることで、インターネット上に情報の公開を行うことができるものです。ローカル開発環境というのは、自身のパソコンの中に仮想のマシンを作りあげることです。そもそも、ローカル環境というのが自身のパソコンの中のことを指しています。
このローカル開発環境というのは、つまり自分のパソコンの中に仮想のサーバを作ることで、実際にインターネット上にアップロードする前に自分のパソコンの中でどうのように作動するのか確認しながら開発することができるということです。
このローカル開発環境は、XAMPPやMAMPを使えば簡単に構築することができます。
プログラミング実行環境の「Wandbox」
PHPを記述するためにはローカル開発環境が必要であることは前述しました。もちろんWeb上で公開するためにはローカル開発環境やサーバが必須なのですが、コードを書くだけであればわざわざローカル開発環境は必要ありません。
このプログラミング実行環境の「Wandbox」は、Boost Software Licenseのオープンソース・ソフトウェア。
こちらはブラウザ上でコードを書くことができるので、「ちょっとPHPを書いてみたい、試してみたい」という人におすすめです。
使い方は以下のとおり、簡単!
- 「choose compiler:」で[PHP]を選択
- 「input code:」にPHPでコードを記述
- 「Run(or control+enter)」を押す
- 「input stdin:」の上に結果が出力される
「ローカル環境開発は面倒だけど、コードは書いてみたい」という方は、こちらを利用してみてください。
LIGブログではこんな動的表示をしています
PHPが実際にLIGブログのどこで使われているのか、例を紹介してから、書き方の基礎と基本構文を説明したいと思います。
記事ページの右カラムに書いた人を表示する
パソコンからLIGブログを見たとき、右カラムには「書いた人/プロフィール/記事一覧/シェア数」などを表示するようにPHPで指示しています。
ブログ上に記事があったら、新しいものから15件表示する
LIGブログのトップページでは、新しい記事から順に15件まで表示していますが、こういった動作もPHPで指示しています。
PHPの書き方
それでは実際に、PHPがどういった指示をしているのか見ていきたいと思いますが、その前に基本的は書き方から見ていきましょう。
基本的な記述方法
<?php
echo "上記が開始タグ";
echo "この間にコードを書く";
echo "下記が終了タグ";
?>
上の1行目が開始タグで、5行目が終了タグとなります。
PHPの多くはHTMLと一緒に書かれることが多いのですが、仮に上記のようなPHPのみの場合は終了タグを使わないことが推奨されています(終了タグを使うと、思わぬ空白が入りエラーにつながりやすいからです)。
2〜4行目を見ていただければわかると思いますが、1つの命令が終わったらセミコロン(;)を入れます。CSSやJavaScriptなど他の言語を修得している方であれば、それと同じなのでわかるかと思います。
(後述しますが、echoというのは文字列を表示するための文で、「””」内に文字を記述すると出力させることができます。)
「HTMLと一緒に書けるってどういうこと?」と思う方もいると思うので、例として以下のようなコードを書きました。
<html>こんにちは、PHPの練習です。<?php echo "Hi!"; ?></html>
- 出力すると
- こんにちは、PHPの練習です。Hi!
<?php ?>
で囲まれていれば、
<html> </html>
の中にも書くことができるというのがわかるかと思います。
コメント
Web上では表示させたくないが、コードを読む人へのコメント(メモ書き)をコード上に残しておきたい場合の記述方法です。
<?php
// コードを読む人へのコメント
# コードを読む人へのコメント
/*
コードを読む人へのコメントを複数行残したい場合
コードを読む人へのコメントを複数行残したい場合
*/
2行目と3行目にある「//」と「#」がコメントを残すという命令になり、これはコメントが1行で十分なときに使います。
コードを読む人へのコメントを複数行残したい場合は、4行目と7行目にあるように「/*(コメント)*/」で囲みます。
変数とは
変数とは「値につける名前」のことで、何度も同じ表記をする場合にコードを簡潔に書けるようにします。以下のコードを例に説明していきます。
<?php
//変数とは
$message = "PHPの練習です";
echo $message;
- 出力すると
- PHPの練習です
3行目にある$から始まる部分が変数の指定で、変数には以下のものが使えます。
- 英数字(大文字と小文字は区別され、数字は$直後は使えない)
- アンダーバー
また、変数を使う場合は代入演算子という「=」を使います。
つまり上記のコードは、「$message」という変数に「PHPの練習です」という文字列を代入していることになります。
今後、「$message」を使った場合「PHPの練習です」という文字列が表記されます。
この変数が有効なのは、その表記を変更したい場合などです。例えば「PHPの練習です」を「PHPの練習!」と変更したい場合、
$sitename = "PHPの練習です"; → $sitename = "PHPの練習!";
上のようにして、
<?php
//変数とは
$message = "PHPの練習!";
echo $message;
とすれば全てのページの$messageに「PHPの練習!」が代入されます。
仮に変数を使わず、全てのページで「PHPの練習です」と表記していたら、1つずつそれを「PHPの練習!」としなければなりません。ページ数が多いと手間や時間がかかってしまいますが、変数を使っていれば1行だけ変更すればいいので、そういった手間を省くことができます。
文字を出力するには
文字列を出力するためには、print/echo文を使います。どちらも文字列を出力するのですが、もちろん違いがあります。
<?php
echo "Hello World!","See you."; //エラーでない
print "GoodMorning","GoodNight"; //エラーでる
echoは文字列をカンマ(,)で区切れば複数表示できるのに対し、printではできません。
PHPの基本構文
PHPの代表的な基本構文を使うと、どういったことができるのでしょうか。
前述のとおりLIGブログはWordPressで組んでおりPHPでカスタマイズしているので、LIGブログを例に見ていきたいと思います。
if文
ifと聞いてわかる通り、ifとは「もし〜だったら…する」という記述です。このif文というのは条件分岐といって、条件によってどういった動きをユーザに返すのかを指定します。
条件はいくらでも加えることができるのですが、こちらでは大まかに説明していきたいと思います。
if文
LIGブログ上の例を挙げると「もし記事が表示されたら右側に書いた人を表示させる」といったような動きです。
<?php
if(LIGブログの記事にアクセスしたら){
// 右側に書いた人を表示させる;
}
if〜else文
「if〜else」という構文もあり、こちらは「もし〜だったら…する、そうでない場合は〇〇する」といった具合です。
LIGブログを例に見てみましょう。
スマホもPCも、左上にLIGブログ内の検索窓があるかと思います。そこにキーワードを入れて検索した結果、そのキーワードを含む記事がLIGブログ上にある場合とない場合の処理は異なります。
ある場合はその記事を表示しますが、ない場合は「NOT FOUND」ページを表示するようになっています。
この指示をしているのが「if〜else」構文です。
「wordpress」と検索すると、そのキーワードを含む記事が表示されます。
「たまご焼きの作り方」で検索すると、そのキーワードを含む記事はLIGブログ上にはないので、NOT FOUNDページが表示されます。ちなみに、Mr.Childrenの「Not Found」を聞くことができるようになっています。
<?php
if(検索されたワードがブログ上にあるとき){
// そのキーワードの記事を表示する;
} else {
// NOT FOUNDのページを表示する;
}
while文
whileという英単語に「〜している間」という意味があるように、while文は「〜している間…をくり返す」という記述です。
例えば、「LIGブログ上に記事がある間、記事タイトルとアイキャッチ画像の表示をくり返す」などといった使い方があります。
<?php
while(ブログ上に記事があったら){
// 記事タイトルを表示する;
// アイキャッチ画像を表示する;
// 次の記事にうつる;
}
for文
for文もくり返しを実行するための記述ですが、While文と違ってくり返しの回数を指定することができます。LIGブログでは、1ページに15件ずつ表示されるようになっています。
つまり、「ブログ上に記事があったら、記事のタイトル/アイキャッチ画像を表示する」を15件までくり返すというコードになります。
<?php
for( $i = 1; $i <= 15; $i++ ) {
// 記事タイトルを表示する;
// アイキャッチ画像を表示する;
}
少し複雑なので、1つずつ見ていきたいと思います。
- 「$i」は、何個目の記事か数える役割を担った変数。
- 「$i = 1;」は、変数$iに1を代入するコード。
- 「$i <= 15;」は、変数$iが15以下までは繰り返すというコード。
- 「$i++」は、一度繰り返しを終えたら、$iに1ずつ増やしていくコード。
以上をまとめると、1度「記事タイトルを表示する/アイキャッチ画像を表示する」という命令を終了した後に、変数iには1が加えられます。
2度目であれば、変数$iには2が代入されます。この2は当然15以下なので、2個目の記事の「記事タイトルを表示する/アイキャッチ画像を表示する」という処理を行います。
といった具合に、$iに代入される数字が15になるまで同じ処理を繰り返します。
まとめ
いかがでしたか?
LIGブログを例に紹介しましたが、PHPはもっと多くの処理を行うことができます。今回は入門編ということで、概要だけ説明させていただきました。
ひとりで勉強しているとわからないところを聞ける人がいなかったり、一度つまずくと先へ進めなかったりするので、これらのこと全てを独学で勉強するのは大変ですよね。
今回情報提供をしてくださった「株式会社ドリーム・シアター」さんでは、就職・転職希望者を対象に、毎回7名限定で「無料PHPスクール」を開講しています。無料かつ、23日という短期間でPHPを修得することができるそうです。
全くの未経験者でも「ショッピングサイトの構築」や「会員管理サイトの作成」などができるようになるんだとか!
また、有料となりますが、就職・転職を行わない方も参加できるそう。受講料もお手頃らしいので、一般的な有料スクールに通うのと比較すると、お金と時間の節約になるかもしれませんね。
>>「無料PHPスクール」で、PHPを修得したい方はこちら<<
※卒業間近の学生さんも、在職中の方も申し込みできます!
気になる方はぜひ参加してみてください。
それでは。
【PHP初心者におすすめの関連記事】
※ 未経験から目指す!Webプログラマーになるための勉強方法