バックエンドシェアこんにちは、ひろゆきです。僕はWebサービスをつくりたくてエンジニアになったのですが、プログラミング言語は数が多く仕様もさまざま。「プログラミングには興味があるけど、どの言語から手をつけるべきか分からない」という方も、多いのではないでしょうか?今回プログラミング言語の中でもPHPをご紹介するのは、初心者でも比較的とっつきやすく、前知識がほとんどなくてもブラウザ上で動かすことができるので、エンジニア入門に適しているからです。プログラミングでモノ作りをしたいと考えている方は、PHPから始めることをおすすめします。今回は「無料PHPスクール」を運営している「株式会社ドリーム・シアター」の中田さんの情報提供の元、LIGブログでのif文やwhile文の事例など、PHPを勉強する前に知っておきたい基礎知識をまとめてみました。せいどう)さんPHP/Javaを中心としたWebシステム開発会社(株式会社ドリーム・シアター)を運営。開発実績を基に、未経験から23日間でWebプログラマーになることができる『無料PHPスクール』を開催中。エンジニアになりたいという方は、ぜひ参考にしてください。基礎的な記述方法コメント変数とは文字を出力するにはPHPの基本構文if文while文for文まとめそもそもPHPとは?http://php.net/PHPとは、動的にWebページを作るためのプログラミング言語のことです。プリプロセッサー)とは、動的にHTMLデータを生成することによって、動的なウェブページを実現することを主な目的としたプログラミング言語、およびその言語処理系である。引用元:Wikipadiahttp://ja.wikipedia.org/wiki/PHP:_Hypertext_Preprocessor動的な指示がどういうことか、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スクリプトが実行され、結果をウェブブラウザに対して送信する。引用元:Wikipadiahttp://ja.wikipedia.org/wiki/PHP:_Hypertext_Preprocessorスクリプト言語というのはプログラミング言語の一種であり、Web上での動的な動きを記述できる言語です。このスクリプト言語は、クライアントサイドとサーバサイドの2つに分けることができます。クライアントサイドクライアントという言葉のとおり、Webを閲覧してくれるユーザのことを表します。ユーザがWebを見るときに使うものは、「ブラウザ」ですよね。そのため、クライアントサイドのことをそのままブラウザと言い表すこともあるそうです。クライアントサイドとは、ユーザのブラウザ上で動作するすべてのものを指します。HTMLやCSS、JavaScriptなどはブラウザ上で機能するものなので、これらを例として挙げることができます。サーバサイドサーバサイドというのは、HTMLファイルやCSSファイルを保存してあるWebサーバのことで、サーバでは「ユーザがリクエストしたことに対してデータを返す」ということを行っています。ECサイトを例に考えてみましょう。いままで購入した履歴を見たいときに、「購入履歴を表示」をクリックするのがユーザのリクエストだとすると、それに対しサーバサイドは「データベースから、そのユーザの購入履歴のデータを出す」ということを行います。これが、「ユーザがリクエストしたことに対してデータを返す」ということです。サーバについて次は、PHPと関係が深いサーバについて詳しく見ていきましょう。PHPはサーバサイドのスクリプト言語なので、PHPを記述する際にはサーバ、あるいはローカル開発環境が必要です。サーバはレンタルサーバなどが有名ですよね。これは、実際にサーバをレンタルすることで、インターネット上に情報の公開を行うことができるものです。ローカル開発環境というのは、自身のパソコンの中に仮想のマシンを作りあげることです。そもそも、ローカル環境というのが自身のパソコンの中のことを指しています。このローカル開発環境というのは、つまり自分のパソコンの中に仮想のサーバを作ることで、実際にインターネット上にアップロードする前に自分のパソコンの中でどうのように作動するのか確認しながら開発することができるということです。このローカル開発環境は、XAMPPやMAMPを使えば簡単に構築することができます。XAMPP:https://www.apachefriends.org/jp/index.htmlMAMP:http://www.mamp.info/en/プログラミング実行環境の「Wandbox」http://melpon.org/wandbox/PHPを記述するためにはローカル開発環境が必要であることは前述しました。Web上で公開するためにはローカル開発環境やサーバが必須なのですが、コードを書くだけであればわざわざローカル開発環境は必要ありません。Licenseのオープンソース・ソフトウェア。こちらはブラウザ上でコードを書くことができるので、「ちょっとPHPを書いてみたい、試してみたい」という人におすすめです。stdin:」の上に結果が出力される「ローカル環境開発は面倒だけど、コードは書いてみたい」という方は、こちらを利用してみてください。LIGブログではこんな動的表示をしていますPHPが実際にLIGブログのどこで使われているのか、例を紹介してから、書き方の基礎と基本構文を説明したいと思います。記事ページの右カラムに書いた人を表示するパソコンからLIGブログを見たとき、右カラムには「書いた人/プロフィール/記事一覧/シェア数」などを表示するようにPHPで指示しています。ブログ上に記事があったら、新しいものから15件表示するLIGブログのトップページでは、新しい記事から順に15件まで表示していますが、こういった動作もPHPで指示しています。PHPの書き方それでは実際に、PHPがどういった指示をしているのか見ていきたいと思いますが、その前に基本的は書き方から見ていきましょう。"下記が終了タグ";?>上の1行目が開始タグで、5行目が終了タグとなります。PHPの多くはHTMLと一緒に書かれることが多いのですが、仮に上記のようなPHPのみの場合は終了タグを使わないことが推奨されています(終了タグを使うと、思わぬ空白が入りエラーにつながりやすいからです)。2〜4行目を見ていただければわかると思いますが、1つの命令が終わったらセミコロン(;)を入れます。CSSやJavaScriptなど他の言語を修得している方であれば、それと同じなのでわかるかと思います。(後述しますが、echoというのは文字列を表示するための文で、「””」内に文字を記述すると出力させることができます。)「HTMLと一緒に書けるってどういうこと?」と思う方もいると思うので、例として以下のようなコードを書きました。<html>こんにちは、PHPの練習です。?></html>出力するとこんにちは、PHPの練習です。</html>の中にも書くことができるというのがわかるかと思います。コメントWeb上では表示させたくないが、コードを読む人へのコメント(メモ書き)をコード上に残しておきたい場合の記述方法です。コードを読む人へのコメント/*コードを読む人へのコメントを複数行残したい場合コードを読む人へのコメントを複数行残したい場合*/2行目と3行目にある「//」と「#」がコメントを残すという命令になり、これはコメントが1行で十分なときに使います。コードを読む人へのコメントを複数行残したい場合は、4行目と7行目にあるように「/*(コメント)*/」で囲みます。変数とは変数とは「値につける名前」のことで、何度も同じ表記をする場合にコードを簡潔に書けるようにします。以下のコードを例に説明していきます。$message;出力するとPHPの練習です3行目にある$から始まる部分が変数の指定で、変数には以下のものが使えます。英数字(大文字と小文字は区別され、数字は$直後は使えない)アンダーバーまた、変数を使う場合は代入演算子という「=」を使います。上記のコードは、「$message」という変数に「PHPの練習です」という文字列を代入していることになります。今後、「$message」を使った場合「PHPの練習です」という文字列が表記されます。この変数が有効なのは、その表記を変更したい場合などです。$message;とすれば全てのページの$messageに「PHPの練習!」が代入されます。仮に変数を使わず、全てのページで「PHPの練習です」と表記していたら、1つずつそれを「PHPの練習!」としなければなりません。ページ数が多いと手間や時間がかかってしまいますが、変数を使っていれば1行だけ変更すればいいので、そういった手間を省くことができます。文字を出力するには文字列を出力するためには、print/echo文を使います。どちらも文字列を出力するのですが、もちろん違いがあります。//エラーでるechoは文字列をカンマ(,)で区切れば複数表示できるのに対し、printではできません。PHPの基本構文PHPの代表的な基本構文を使うと、どういったことができるのでしょうか。前述のとおりLIGブログはWordPressで組んでおりPHPでカスタマイズしているので、LIGブログを例に見ていきたいと思います。if文ifと聞いてわかる通り、ifとは「もし〜だったら...する」という記述です。このif文というのは条件分岐といって、条件によってどういった動きをユーザに返すのかを指定します。条件はいくらでも加えることができるのですが、こちらでは大まかに説明していきたいと思います。if文LIGブログ上の例を挙げると「もし記事が表示されたら右側に書いた人を表示させる」といったような動きです。「if〜else」という構文もあり、こちらは「もし〜だったら...する、そうでない場合は〇〇する」といった具合です。LIGブログを例に見てみましょう。スマホもPCも、左上にLIGブログ内の検索窓があるかと思います。そこにキーワードを入れて検索した結果、そのキーワードを含む記事がLIGブログ上にある場合とない場合の処理は異なります。FOUND」ページを表示するようになっています。この指示をしているのが「if〜else」構文です。「wordpress」と検索すると、そのキーワードを含む記事が表示されます。FOUNDページが表示されます。Found」を聞くことができるようになっています。FOUNDのページを表示する;}while文whileという英単語に「〜している間」という意味があるように、while文は「〜している間...をくり返す」という記述です。「LIGブログ上に記事がある間、記事タイトルとアイキャッチ画像の表示をくり返す」などといった使い方があります。次の記事にうつる;}for文for文もくり返しを実行するための記述ですが、While文と違ってくり返しの回数を指定することができます。LIGブログでは、1ページに15件ずつ表示されるようになっています。「ブログ上に記事があったら、記事のタイトル/アイキャッチ画像を表示する」を15件までくり返すというコードになります。アイキャッチ画像を表示する;}少し複雑なので、1つずつ見ていきたいと思います。「$i」は、何個目の記事か数える役割を担った変数。1;」は、変数$iに1を代入するコード。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を修得したい方はこちら<<※卒業間近の学生さんも、在職中の方も申し込みできます!気になる方はぜひ参加してみてください。