いまや約200種類のプログラミング言語が存在するといわれますが、そのなかでも PHPは、WebサイトやWeb アプリの開発で重宝されています。また、初心者にやさしい言語として定評のある言語でもあります。本記事では、そんなPHPについて初心者向けに分かりやすく解説します。
PHPとは?
PHP(正式名称:Hypertext Preprocessor)は、1995年に登場したサーバーサイドのプログラミング言語です。WebサイトやWebアプリの開発に特化しており、PHPを使うことで、動的なページを作成できます。
これだけではいまいちよくわからない人もいると思うので、次項の「PHPの特徴」で深堀していきます。
PHPの歴史
PHPは、1995年にラスマス・ラードフ氏が自身の運営するWebサイトのアクセス履歴を調べるために「Personal Home Page Tools」を開発したのがはじまりです。オープンソースだったこともあり、利用者も増え、有志たちによる機能の追加やバージョンアップを繰り返し、現在のPHPに至りました。
PHPの特徴
ここからはPHPの特徴をとおしてPHPの理解を深めましょう。PHPの人気に大きく関係している部分でもあります。
HTMLに組み込める
HTMLは文書構造を指定するマークアップ言語で、単体では静的なWebページしか作成できず、機能が限られますが、PHPはHTML内にコードを組み込んで動かすことができ、Webページに動きを付けられます。静的なWebページとは、だれがいつそのページに訪れても同じ画面が表示されるページで、動的なページは、サイトに訪れたユーザやタイミングによって表示される画面が異なるWebページです。
HTML内にPHPのプログラムを記述できるため、1つのファイルにまとめられます。
サーバサイドスクリプト言語
HTMLに組み込める言語にはWebサーバ側で実行されるサーバサイドスクリプト言語とクライアント側で実行されるクライアントサイドスクリプト言語がありますが、PHPは前者のサーバサイドスクリプト言語です。
よく類似言語としてJavaScriptが挙げられますが、JavaScriptは前者のサーバサイドスクリプト言語です。
クライアント側のWebブラウザ上でWebページの表示制御を行うクライアントサイドスクリプト言語と違い、サーバサイドスクリプト言語は、要求に対して、Webサーバ側で処理を行い、クライアントに応答するHTMLを送り返します。
データベースと接続しやすい
サーバサイドスクリプト言語であるため、サーバ側にあるデータベースと連携を取りやすいという特徴があります。
瞬時にデータベースとのやり取りができるので、Webサーバに保存されているデータの引き出しやIDやパスワードが合っているかサーバと照合して判定し、ログイン後の画面に移行するといった処理にはPHPがよく使われています。
インタプリタ型言語
「Interpreter」は日本語では「通訳」となります。この意味のとおり、プログラムをコンピュータが実行する際、一括でコンパイルせず、一行ずつ機械語に変換しながら実行していくため、その都度動作が確認できます。
確認や修正がしやすいので初心者にも扱いやすいでしょう。
ちなみに、スクリプト言語とインタプリタ型言語の違いはご存じでしょうか?
スクリプト言語の「スクリプト(Script)」は日本語で「原稿」という意味で、「スクリプト言語」とは、比較的簡単に読み書きでき、英語のような感覚で台本のように読みやすいプログラミング言語を指します。ただ、明確な定義はありません。
それに対し、「インタプリタ型言語」は実行型について定義したものです。
スクリプト言語の大半がインタプリタ型言語であるために混同されてしまいがちな2つですがこのように全然違ったものです。
構文がシンプルでわかりやすい
ほかのプログラミング言語と比べて、変数の型や配列などに制約が少なく、自動で型の調整などを行ってくれるため、構文や文法がシンプルになります。これは、覚えることが少なく済み、バグもわかりやすいため、プログラミング初心者にはもってこいです。
環境構築が容易
PHPはOSに制限がなく、「メモ帳」や「テキストエディタ」といったWindowsやMacなどにはじめから搭載されているソフトでも開発できます。またプログラムを動かすための実行環境を手軽に構築できるサービスが豊富に用意されているのも魅力です。
フレームワークが充実している
PHPには、開発を補助するフレームワークが豊富にあります。
システム開発における「フレームワーク」とは、システムやアプリを開発するのに頻繁に使う機能の動作や処理をひとまとめにしたものです。基本的な骨組みがある分、必要最低限のプログラムのみで開発を進められるので、業務を効率化でき、開発にかかる期間の大幅な短縮が可能になります。
PHPの代表的なフレームワークには以下のようなものがあります。
PHPフレームワークおすすめ9選|入門者向けに【徹底比較】
インターネット上に情報が多くある
PHPは昔から利用者が多く、需要が高いこともあり、日本語で書かれたインターネット上にも情報が多くあるため、何かわからないことが出ても調べれば大抵の疑問は解決できるでしょう。
PHPでできること
PHPは、Webサーバ上で動く言語であるためサーバ上のデータを活用するWebサービスやWebアプリの開発と相性がいいです。そのなかでも代表的なものを紹介します。
こうした多くのシステムには、HTMLを使用したユーザ画面と、データベースからデータを取得して加工する部分の二つの機能があり、どちらもPHPの得意とするところになります。
SNSサイト
SNSで使われている次のような機能はどれもPHPで開発可能です。
- ユーザの登録・削除・更新
- 投稿などのコンテンツ作成・編集・削除
- チャット機能
- タイムライン
- ログイン機能
ECサイト
次のような機能も実装することもでき、決済機能が付いたECサイトを作ることもできます。
- 会員情報の登録・削除・更新
- ログイン機能
- 商品を購入するシステム
- 予約機能
- 検索機能
- オンライン決済機能
- 在庫管理システム
- 売上管理システム
- ショッピングカート
- カート内の合計金額の自動カウント・計算機能
ブログ
ブログやサイトにはその管理を手軽に行える「CMS(=Contents Management System)」というシステムがよく使われていますが、これもほとんどがPHPで作られています。
CMSを使えば、管理画面から記事の投稿・編集、外観の変更などもできます。CMS では、記事をデータベースに記録し、サイトへのアクセスがあれば、PHPがデータベースから記事を読み込み、表示させています。
予約システム
PHPを使えば、予約システムも開発可能です。日付や時間、施設の空き状況といった情報を自動的にデータベースからユーザ画面に取得して表示させることができます。
社内管理システム
PHPで社員情報の登録・更新・削除・照会や勤怠管理を行うシステムを作ることもできます。
PHPの注意点
Web以外の開発には不向き
前述のとおり、PHP は Webサイトや Webアプリの開発に特化した言語であり、それ以外の開発には不向きです。大規模なデータの高速処理は苦手です。速度を重視するのであればコンパイラ型言語を使用しましょう。また、サーバサイドで処理を実行するPHPには単一ページで操作するSPAの開発も苦手です。ブラウザ上で表示や動作を制御するにはJavaScriptを利用しましょう。ほかにも、スマートフォンアプリの開発をする場合は、Swift や Kotlin を学習することをおすすめします。
セキュリティが甘い
世界中のWeb開発に利用されるPHP ですが、懸念点として挙げられるのがセキュリティの甘さです。現在もアップデートを続けており、セキュリティ面も強化されていますが、プログラムによっては、不正アクセスされてしまうなどといった危険にさらされることもあります。
PHPでECサイトを解説する場合、会員情報や決済情報といった個人情報を扱うため、このような部分はセキュリティを十分に考慮する必要があります。
自由度が高すぎる
PHP はコーディングにおける自由度が高いため、同じ処理でも何通りもの記述方法があります。また、コードに不備があった場合でも一見正常に作動するという特性もあり、エラーの見過ごしや危険性の高いコーディングを引き起こしてしまう可能性もあります。複数人で開発を行う場合は、コーディングのルールを定め、順守するなどの工夫が必要です。
PHPが使われているサービス
PHPはスピード感のある開発に向いており、小規模な開発で導入されることが多いですが、私たちが日々利用しているメジャーなサービスにも使われています。ここからは、実際に PHP を使って開発された身近なサービスをご紹介します。
現在ではPHPを独自に改良した「Hack」という言語に変更されましたが、開発当初は PHP を使っていました。
ぐるなび
飲食店の予約サイト「ぐるなび」は PHP のフレームワークである Laravel で実装されました。
ココナラ
個人のスキルを売買できるフリマサイト「ココナラ」も CakePHP という PHP のフレームワークが採用されています。
Slack
ビジネスでよく使用されるチャットツール「Slack」も JavaScript や Java などと併せて PHP が使われています。
WordPress
企業メディアや個人ブログで使われることが多い CMS「WordPress」は、PHP で作られています。コードの知識不要でWebサイトを構築できるWordPressですが、プログラミングの知識やスキルがあればより自由にカスタマイズしたり、さまざまな機能を追加したりしてオリジナリティーの高いものを作ることもできます。
PHPの記述ルール
拡張子は「.php」
ファイル名の拡張子を「.php」にすることでサーバがPHPで記述されたファイルとして認識して処理します。また、HTMLで記述したファイルに組み込むことも可能です。
以下にHTMLにPHPを埋め込んだ例を示します。「echo」は文字列を出力するときに宣言します。
<!DOCTYPE html>
<html>
<head>
<title>~~~~~</title>
</head>
<body>
<?php
echo "Hello World!!";
?>
</body>
</html>
コードを書く場所
PHPでは、「<?php」で始まり「?>」で終わるというルールがあり、間に内容を記述します。
コードの最後にセミコロン(;)をつける
PHPでは1つの命令コードの末尾にセミコロン(;)をつけるルールになっています。
コメントの記述方法
コメントとは、コードの内容を分かりやすいように書いておくメモのことです。必須ではありませんが、後から見直す場合やほかの人に共有する場合に便利です。記述方法には以下の3種類があります。
行頭に「//」と書く
行頭に「#」と書く
複数行にわたってコメントする場合はコメントの前後を「/*」と「*/」で囲む
PHPの基本文法・構文
変数
変数は、任意のデータ(文字列や数字)を入れておく箱のようなものです。必要になったらその箱を設置することで、同じ中身を使用できます。何度も同じデータを使う場合に便利です。
$name="Yamada"
print ($name);
YamadaをTanakaに変えれば、一括で同じ変数が使われている箇所を編集できます。
変数には以下に示すルールがあります。
ドル記号($)から始める
a-z、A-Z、0-9、「_」で表現する
先頭に数字は使えない
日本語は非推奨(使用自体は可能)
演算子
演算子は、さまざまな計算を実行する記号です。計算して任意の値から別の値を生成する場合に使用します。四則計算を行う「算術演算子」、数値の大小を比較する「比較演算子」、論理演算を行う「論理演算子」などがあります。
$enzan = 3 + 5;
echo "3 + 5 = $enzan\n";
上記を実行するとブラウザで「3+5=8」と表示されます。
if文
if文は、指定した条件に当てはまる場合(TRUE)に処理をし、当てはまらない場合(FALSE)は処理しないという条件分岐を行うもので、以下のように記述します。
if (条件式) {
~~~~
} else {
~~~~
}
while文
while文は、指定した条件式に当てはまる間は繰り返し処理を行うというもので、以下のように記述します。
初期値;
while(条件式){
処理;
増減式;
}
関数
関数とは、頻繁に利用する処理をまとめたもので、複雑な処理を数行で表現できます。
PHPの将来性
今現在も世界中で人気が高く、2021年に W3Techsが行った調査 によれば、Webサイトのサーバーサイドを開発する言語のうち、約78%に PHP が使われているようです。このことからも PHP の圧倒的なシェアの高さがうかがえますね。
既存のWebサイトにPHPが使われているということは、改修も PHP で行うことになるでしょう。
また、なんといっても「WordPress」の存在が大きいです。世界中の Webサイトのうち、WordPressで作られた Webサイトは約42%を占めているといわれ、利用者数は約6000万人とも言われています。
そして、これからも Webサービスや Webアプリは増え続けると考えられ、その需要が衰えることはないと考えられることから将来性は十分に高いといえます。
このように世界中のWebサービスで用いられ、求人数も多いため、Webエンジニアであれば押さえておきたいプログラミング言語といえます。また、PHPは習得難易度が低くほかの言語にもスライドしやすいので、プログラミング学習の第一歩としてもおすすめできる言語です。
エンジニアとして活躍するには
PHP だけを取得しても PHP 単体で活躍するには無理があるでしょう。PHPエンジニアとしての市場価値を上げるにはPHPだけでなく、開発周りの知識・スキルが必要です。
Webサイトや Webアプリを作るには、デザインも大事になってくるので、HTMLや JavaScript、CSS も併せて学んでおくことをおすすめします。データベースとの連携に必要なSQLを学ぶのもおすすめです。
そして、実際にWeb開発をしてみるなど、手を動かしてみたり、実力を測るという意味で資格取得もいいでしょう。PHP関連の資格には、「PHP技術者認定試験」や「Zend PHP Certification」などがあります。
HTML/CSSとは?関係性や書き方を解説
PHPの勉強方法
書籍やインターネットで学習する方法があります。昨今では、YouTubeなどの動画サイトやエンジニアのコミュニティサイトなども充実していて多くの情報が手に入ります。
そして、より効率的に知識・スキルを習得するには、知識をつけながら実際に手を動かしてみるなど、インプットとアウトプットを繰り返していくことが重要です。特に独学の場合は、有識者に質問ができたりフィードバックをもらえるような環境があると、理解度が深まるでしょう。
ただ、PHPに限らず、ITスキルを身につける際、どうしても課題にぶつかってしまうことはありますよね。特に独学だと、わからない部分をプロに質問できる機会を確保しにくく、モチベーションが続きにくいという側面があります。独学でモチベーションを維持する自信がない人にはプログラミングスクールという手もあります。費用は掛かりますが、その分スキルを身につけやすいです。しっかりと知識・スキルを習得して実践に活かしたいという人はプログラミングスクールがおすすめです。
プログラミングスクールならテックマニアがおすすめ!
ITスキル需要の高まりとともにプログラミングスクールも増えました。しかし、どのスクールに通うべきか迷ってしまう人もいるでしょう。そんな方にはテックマニアをおすすめします!これまで多くのITエンジニアを育成・輩出してきたテックマニアでもプログラミングスクールを開講しています。
<テックマニアの特徴>
・たしかな育成実績と親身な教育 ~セカンドキャリアを全力支援~
・講師が現役エンジニア ~“本当”の開発ノウハウを直に学べる~
・専属講師が学習を徹底サポート ~「わからない」を徹底解決~
・実務ベースでスキルを習得 ~実践的な凝縮カリキュラム~
このような特徴を持つテックマニアはITエンジニアのスタートラインとして最適です。
話を聞きたい・詳しく知りたいという方はこちらからお気軽にお問い合わせください。