【入門編】今さら聞けない!PHPとは【初心者向け】|現役エンジニアが解説
Web開発でよく使われている「PHPとは何か」を初心者向けに解説した記事です。聞いたことはあるけど、いまいちPHPが何なのかよく分からないという人は、ぜひご覧ください。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Web開発でよく使われている「PHP」という言語を初心者向けに解説した記事です。聞いたことはあるけど、いまいちPHPが何なのかよく分からないという人は、ぜひご覧ください。
これからプログラミングを始めようと思っている人にも全体像がイメージできると思います。
今回の記事の内容は動画でもご覧いただけます。テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。
目次
- PHPとは
- PHPでできること
- サーバーとクライアントとは
- PHPがプログラミング初心者向きな理由
- PHPの将来性やエンジニア需要
- 基本的なPHPの書き方
- PHPの基本構文
- PHPを学習できるWebサービス
- PHPを学習できる書籍
PHPとは
PHPはHTMLに埋め込むことができるため、Web開発でよく使用されるスクリプト言語です。Web開発でよく使用されるスクリプト言語に、JavaScriptがありますが、PHPとJavaScriptの大きな違いは、そのコードがどこで実行されるかにあります。
JavaScriptは、クライアントサイド(Webサイトを閲覧しているブラウザ)がコードを受け取り、そこで動作します。そのため、どのようなコードが書かれているのか、誰でも見ることができてしまいます。
一方、PHPはサーバーサイドでコードを実行します。クライアントサイドはその結果のみを受け取るため、どのようなコードで導き出された結果なのか見ることができません。
PHPを実行するには、PHPがインストールされたWebサーバーが必要です。ローカルに開発環境を用意したい場合は、XAMPPを使うのが便利です。
また、すぐにPHPを使用することができるレンタルサーバーもあるので、すぐに勉強を始めたいという場合は便利です。
田島メンター!サーバーサイドで実行されるというのは、どういうことでしょうか?
簡単に例えると、サーバーサイドが自分の家、家に訪問してくる人がクライアントサイドかな。
サーバーサイドは訪問してくる人を選べるってことですか?
そうそう。外から入ってくる人を選べるので、セキュリティとか、管理人しか入れない領域とかを作ることが出来るんだ。ブログ・ショッピングサイト・SNSなど。では、PHPについて見てみよう!
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
PHPでできること
PHPを使うと、ひとつのページに様々な情報を反映して動的なページを作ることができます。基本的にPHPでよく使用されるのは次の3つです。
HTMLソースコードを生成する
PHPを使うと、HTMLソースコードを作成することができます。すべての文章をPHPで書く必要はなく、HTMLの一部分のみPHPで生成するということができます。
データベースと連携する
PHPを使うとMySqlやPostgerSQLなどさまざまなデータベースと連携したWebサイトを簡単に作成することができます。
ブログや掲示板などのサイトは、記事をデータベースに記録し、サイトへのアクセスがあるとPHPでその記事のデータをデータベースから読み込んで表示させています。
クライアントから送信された情報を受け取る
HTMLのフォームでユーザーが入力した情報をPHPを使って受け取ることができます。HTMLで作成したフォームから送信された情報を受け取って、HTMLソースに表示したり、データベースに保存したりすることができます。
サーバーとクライアントとは
続いてサーバーとクライアントの違いについて、SNSの代表のツイッターを題材にお話しようと思います。まず言葉的な話ですが、クライアントとは、サービスを利用しているユーザー側という意味で、逆にサーバー側とは、データなどを取り扱っているサービス提供側という意味になります。
ツイッターだとスマホを使って操作しているのがクライアント側で、ツイッターの運営会社がサーバー側という事になりますね。クライアントとサーバーと何故別れているかというと、システムの機能性と安全性のためです。
クライアント側の役割
例えばクライアント側(JavaScript)でのプログラムの処理といえば、まず初期表示の時にどこになんの文字または画像を表示させるのかという処理など「ツイート」をクリックすると画面にコメントボックスを表示する。
「DM」を押すと、DMメッセージ一覧を表示させるなどの画面側での処理などをメインで行っています。
実はクライアント側のプログラムというのはユーザー側のパソコンなどスマートフォンなどに、保存されていてそのプログラムを読み込んで動いています。
サーバー側の役割
逆にサーバー側(PHP)では、ユーザーさんがツイートしたデータをツイッター画面から送ってもらって企業側のデータベースに格納する。他のユーザーが、最新のツイートに取得する際に新しいツイートをユーザー側に送るというデータベースに関係する処理を行います。
サーバー側のプログラムはユーザーには基本非公開ですので、改ざんの余地などもありません。ですのでデータ関係の処理をサーバー側に一任しているのです。
PHPがプログラミング初心者向きな理由
まずPHPが他のプログラミング言語と違って初心者向きな所は、「関数」というものが豊富にある点です。
関数とは値を渡せば様々な結果が返ってくるというとても便利なものになります。関数の中でも初心者におすすめの物がarray()という関数で、これはデータを取り扱うために必要な「配列」を作る関数になります。配列とは、複数のデータを保持しておける箱のようなものです。
通常配列のデータを取得する際は、この箱の何番目のデータがほしいというように指定してデータを取得しますが、PHPでは上記の関数で通常の配列とは少し違う連想配列というものを手軽に作れます。
連想配列ではデータの保存場所に数字ではなく名前をつける事ができます。たとえばこの箱の「◯◯」という名前のデータをください指定するだけで、データの取得および保管などができるのです。
もう一点は、型の自動変換機能があるところだと思っています。
プログラミング言語には、データを取り扱う際に型というもの概念があります。例えば「1234」は数字型で「あいうえお」は文字型「2020/06/25」は日付型という扱いがあります。上記で説明した配列にもこれは当てはまります。
数値の配列という形で宣言した場合、数値のデータしかいれる事ができないのです。ですので、通常のプログラミング言語では数値型に文字型のデータなどを入れるとエラーが表示されますが、文字型の1234というデータを文字ではなく数値として変換すれば代入が可能になります。これをキャストといいます。
PHPではこのキャストを指示しなくても暗黙的に行います、ですので初心者で型の事を上手く理解できていない人でもプログラムを組むことができるのです。(余談ですがこの型がプログラムで難しいところといわれている所でもあります。)
PHPの将来性やエンジニア需要
PHPは世界中で利用されています。最新のGitHubの調査(2019年)によるとPHPでは第4位に人気がある言語として記録されています。
PHPが登場したのは1995年ですから、それから20年以上もの間、高い人気を保ったまま利用されていることが分かります。この人気は今後しばらくは続くことでしょう。
GitHubより
またPHPは日本国内のソフトウェアの開発現場でも多く利用されています。求人・転職情報サイトGreenでPHPの求人を検索してみると約1200件ヒットしました(2020年6月現在)。
これはフロントエンド(約780件)、Python(約760件)よりも圧倒的に多く、開発現場で最も多く利用されているJava(約1800)の次ぐらいに多い求人数です。
画像出典:Green
またITベンダーやシステム開発会社の新入社員研修でもPHPはJavaと並んで多く採用されています。それもやはり求人数の多さから即戦力を意識してのことと思われます。
エンジニアとしてはPHPとフロントエンドの知識を持っていれば、非常に重宝される人材となりうるでしょう。
基本的なPHPの書き方
PHPファイルは「.php」という拡張子をつけることで、PHPファイルであることをコンピューターが認識してくれます。(例 index.php)
PHPを記述する場合、「<?php」で始まり「?>」で終わるというルールがあります。この間に書かれるスクリプトは複数行になっても大丈夫です。
また、スクリプトの最後には「;」が必要です。
以下が、HTMLにPHPを埋め込んだ例です。
<!DOCTYPE html> <html> <head> <title>基本的なPHPの書き方</title> </head> <body> <?php echo "HELLO WORLD"; ?> </body> </html>
赤字の部分がPHPで書かれている部分です。「echo」は文字列を出力するときに使います。今回の場合は、「HELLO WORLD」という文字列を表示するだけの簡単なスクリプトです。
これをWebサーバーにアップしてブラウザで見ると、下の画像のようになります。左がブラウザでの見た目、右がソースを表示したところです。
クライアントサイドではスクリプトが表示されていないことが確認できます。
PHPの基本構文
PHPでよく使う構文についていくつかまとめて紹介していきます。基礎的な内容なので、PHPとは何かよく分かっていないという人でも覚えておいて損はないでしょう。
if文
if文は、「もし◯◯したら〜する」といった条件分岐を作るのに使う便利な構文です。
<?php if(もし会員登録したら){ // 登録したメールアドレスにサンクスメールを送る } ?>
for文
for文は、繰り返し処理を行う際に便利です。1~100までの数字を1つずつ手動で足していくと面倒ですが、for文を使えば一瞬で処理が終わります。
<?php for($i = 1; $i < 15; $i++){ // 行う繰り返し処理 } ?>
- 「$i」は、数字や文字列などを入れる箱
- 「$i = 1;」は、箱に1という数字を代入
- 「$i < 15;」は、15未満までは繰り返しを行う
- 「$i++」は、繰り返し処理が終わったら$iを1つずつ増やしていく
こういった流れで$iの数字が15未満までは繰り返し処理が行われるという処理になります。
他にもPHPで構文チェックを行う方法を現役エンジニアが説明しているので、合わせてご覧ください。
PHPを学習できるWebサービス
PHP公式マニュアル
PHPのインストール方法から基本構文に関する説明・関数の一覧とその機能・各バージョンの情報など必要な解説が全て揃った公式リファレンス(日本語訳版)です。
不明なことがある場合はまずここで調べるとよいでしょう。
Progate
スライドで学習し、次に実際にコードを入力して練習問題に答えることで段階的に学習することができるサービスです。PHPに関しては配列・if文やfor文等の構文・関数・フォーム作成など基本的な部分まで無料で学ぶことができます。プレミアム会員では更に実際のWebサービスを作成するところまでのカリキュラムが利用可能です。
ドットインストール
動画で学習するサービスです。3分ほどの短い区切りで分けられているため、空いた時間に少しずつ学べるようになっています。PHPに関する学習は「PHPでWebサービスを作れるようになろう」のレッスンパックで行うことができます。
このうちPHPの一通りの機能とデータベースの使い方までは無料であり、有料会員ではCakePHPやLaravelを使って実際にWebアプリケーションを作るところまで学習できます。
PHPを学習できる書籍
PHPの絵本 第2版 Webアプリ作りが楽しくなる新しい9つの扉
初心者用・入門など
図解や絵入りで分かりやすく、一からPHPについて解説されています。コードの書き方の前に、PHPの役割や概念についての部分からきちんと学ぶときに入りやすい本です。
現役エンジニアによるPHPの絵本の書籍レビューも掲載しています。
PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)
初級から実践まで使えるリファレンス目的からその実行方法やサンプルのプログラムを参照できる書籍です。
関数など調べごとがあるときには公式のリファレンスサイトなどを使用する方法もありますが、手元に一冊このような逆引き本があると便利です。解説もとてもしっかりと細かいところまでされています。
現役エンジニアによるPHP逆引きレシピの書籍レビューも掲載しています。
PHP7+MariaDB/MySQLマスターブック
データベースの使用やWebアプリケーションを作るところまでMySQLの知識や実際にアプリを構築する方法など、実践的にPHPを使用する段階のところまで学ぶことができる書籍になります。
ある程度の基本が身についた方におすすめです。
PHPフレームワークLaravel入門 第2版
現在のPHPの開発はフレームワークを利用する場合がほとんどです。日本で多く利用されているフレームワークの1つにLaravelがあります。
本書はLaravelの入門書として人気がある書籍の第2版です。PHPの入門書で基本的なプログラミングを理解した後で読むと良いでしょう。
PHPフレームワーク CakePHP 3入門
Laravelと並んで人気が高いフレームワークがCakePHPです。本書はCakePHPの入門書として最新のバージョン3系に対応しています。
最近の開発現場ではLaravelの方が良く利用されるようになってきましたが、CakePHPで作られたシステムの多く、学習しておくと役に立つことでしょう。
おわりに
今回の記事は以上です。PHPはプログラミング言語全般を理解する上で入り口としてはとても良い言語でしょう。
PHPが理解できれば日頃見ているWebサイトの仕組みも何となく分かり、自分で実装することも可能なので、ぜひ学習してみてください。
監修してくれたメンター
太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア 普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。 開発実績:画像認識技術を活用した駐車場混雑状況把握、音声認識を活用したヘルプデスク支援システム、ロボットアプリの開発、大規模基幹系システムの開発・導入マネジメント。著書「知識ゼロからの機械学習入門(技術評論社)」。 地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。 |
学習できるWebサービスや書籍があって、どこで学ぼうか迷いますねー。
とりあえず、大まかにということなら、ドットインストールが良いかも。慣れてきたら書籍がいいね。
PHPは独学で覚えられますか?
絶対無理ってことはないんだけど、コツがたくさんあるので、他言語をしっかりマスターしたぐらいじゃないと、少し難しいんだ。プログラミング言語は共通点も多いし、1つを習得すると幅がぐんと広がるよ!
また、PHPを勉強していて、
- もっと効率的に勉強したい
- 誰かに聞きながら学びたい
- 自分でWebサービスを作りたい
と思ったことはないでしょうか?
そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。
現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。
人事・研修担当の方は、法人向けのPHP/Laravel研修も合わせてご覧ください。