このような疑問、要望に答えるべく、PHPの特徴や注意点について解説する記事です。具体的には、次の順番でお話していきます。
- PHP言語の特徴やメリット
- PHP言語でできること、できないこと
- PHP言語の注意点
プログラミングの初心者で、これからPHPを学ぶべきか悩んでいるあなたにこそ読んでほしい記事となっていますので、ぜひご覧ください。
記事のもくじ
PHP言語とは?特徴やメリット
そもそもPHPとはどのようなプログラミング言語でしょうか。これからPHPを学習したいと考えているあなたに向けて、PHPの特徴やメリットについて解説します。
Web開発に適したプログラミング言語
PHPは1996年ごろに登場しました。サーバー上で動作するプログラミング言語であり、WebアプリケーションやWebサービスの開発に適したプログラミング言語です。
PHPはスクリプト言語であり、インタプリタ型のプログラミング言語となります。インタプリタ型は、記述したソースコードをすぐに実行できるメリットがあり、プログラミングの学習には最適な言語種別であるといえるでしょう。
プログラミング初心者にとって、PHPの言語仕様は理解しやすく、プログラミングの知識がない人でも習得しやすい言語と言われています。
HTMLに埋め込みWebサーバー上で動作する
PHPは、Webページを表示するためのマークアップ言語である「HTML」の中に埋め込んで利用することが可能です。
HTMLとの親和性の高さも、Web開発に適している要因の一つとなります。
HTMLやCSS、JavaScriptは、Webブラウザ側(クライアント側)で処理されますが、PHPで記述したコードは、Webサーバー側で処理されるため、サーバーサイドのプログラミング言語となります。
一見するとHTMLなどのクライアント側で処理されるものとの違いが分かりづらいものですが、サーバーサイドのプログラミング言語は、次の順番で処理されるものです。
- Webブラウザからユーザーがクリックなどのアクションを起こす
- アクションを受けて、プログラムがサーバーで処理を行う
- 処理結果をインターネットを介してWebブラウザ上に表示する
実際の処理は、あなたが利用しているWebブラウザ上で行われるのではなく、サーバー側で行われています。
利用者が多く、情報量も多い
PHPは2019年現在でも人気があり、プログラミング言語ごとの人気をランキングを掲載するTIOBE Indexを参照すると、PHPは8位にランクインしています。
1996年に登場してから20年以上も利用され続けており、TIOBE Indexの人気度からも、PHPの利用者は非常に多いことがわかりますね。
利用者が多いこともあり、PHPに関する情報は書籍やWebサイトで簡単に入手でき、PHPを学習するためのオンライン学習サイトも複数存在しています。
PHPに関する情報量は非常に多く、必要な情報はすぐに集めることが可能です。
開発環境の準備が簡単
プログラミング初心者にとって、プログラミングを行うための開発環境を準備することは、最初の難関と言えるでしょう。
開発環境を用意することができずに、プログラミングの学習を諦めてしまう人も少なくありません。
PHPの開発環境としては、LAMP環境が最もメジャーでしょう。
LAMPは、Linux・Apache・MySQL・PHPの頭文字を取ったものであり、PHPの開発・動作環境として一般的な構成となっています。
WindowsやMacのパソコンでも、LAMPのような開発環境を作るためにXAMPPと呼ばれるオープンソースの開発環境が用意されています。
PHPを学習する目的であれば、XAMPPをインストールすることで開発環境を簡単に用意することが可能です。
PHP言語でできること、できないこと
PHPの特徴を解説しましたが、具体的にどんなことができるのか知りたい人も多いでしょう。 ここでは、PHPでできること・できないことを紹介します。
できること:Web開発全般
PHPを使ってできることはWeb開発全般です。 Web開発用に登場した言語であり、WebアプリケーションやWebサービスを作ることができます。
実際にPHPで作られたアプリケーションやサービスの例としては、次のものが挙げられます。
- WordPress
- Slack
- Wikipedia
- ぐるなび
- ココナラ
など
Webアプリケーションやサービスで必要となるログイン画面や、掲示板のような機能、ブログ機能などを作成することが可能です。
できないこと:Web開発以外
反対にPHPでできないことはWeb開発以外の開発です。 たとえば、デスクトップアプリ開発や、スマホアプリ開発などはできないと考えてよいでしょう。
PHPはWeb開発に特化したプログラミング言語であり、Webで動作するアプリケーションやサービス以外の開発には適しません。
また、PHPはサーバーサイド言語であるため、ユーザーが入力した情報を元にデータを取り扱うことは得意ですが、Webページの見た目に関する部分は苦手としています。
PHPだけで見栄えのよいWebページを作ることは難しいため、Webページのデザイン部分は、HTMLやCSS、JavaScriptで行うことが一般的です。
PHP言語は本当に初心者向け?デメリットや注意点
PHPのメリットやできることなどについてお話しましたが、デメリットや注意点もあります。
あなたがPHPに関してインターネット上で検索したことがあるのであれば、PHPのマイナスな意見を目にしたことがあるのではないでしょうか。
「PHPで作られたサービスは良くない」
「PHPのエンジニアはスキルが足りない」
といった意見も見受けられ、本当にプログラミング初心者が学ぶべきプログラミング言語であるか悩んでいる人もいるでしょう。
PHPのデメリットとあわせて、PHPを利用する上での注意点・考え方を解説します。
言語仕様が緩くメンテナンス性に問題がある
デメリットの1つ目は「メンテナンス性に問題がある」ことです。
PHPは「比較的誰でも簡単に習得できること」を目指して開発されたプログラミング言語であり、言語仕様は緩いといえます。
言語仕様が緩いため、コードを記述する人によって記述内容のバラつきが出やすい言語です。 コードの内容にバラつきが出るということは、コードの品質に差が出るということ。
システム開発を仕事で行う場合は一人で行うことは少なく、チームで開発するものです。 チームメンバーごとにコードの品質に差が出ることで、メンテナンス性が悪くなってしまいます。
セキュリティ的に脆弱なシステムになりやすい
デメリットの2つ目は「脆弱なシステムになりやすい」ことです。
WebアプリケーションやWebサービスは、必ずセキュリティを意識して作らなければなりません。
インターネットが発達することによって、さまざまなサイバー攻撃手法が登場し、多くのセキュリティインシデントを発生させてきました。
クロスサイトスクリプティングやSQLインジェクション、ディレクトリ・トラバーサルなど、さまざまなサイバー攻撃に対して、セキュリティ対策を施す必要があります。
しかし、PHPで開発を行う場合、それらのサイバー攻撃に対するセキュリティ対策を、ソースコードの中に組み込まなければなりません。
サイバー攻撃に対する知識があれば、対策することも可能ですが、プログラミング初心者にとっては、PHP自体の学習とあわせてセキュリティ対策も行わなければならないため、完璧に対応することは難しいでしょう。
PHPのフレームワークのなかには、セキュリティ対策まで含んだものもありますが、セキュリティ的に脆弱なシステムになりやすい傾向にあります。
また、PHP自体にも脆弱性が発見されることが多く、常にセキュリティ情報をキャッチしておかなければなりません。
あくまでもPHPは「ツール・手段」である
ここまで2つのデメリットを解説しましたが、PHPは利用しないほうがよい言語というわけではありません。
PHPで作られたWebアプリケーションやサービスは悪い、ということはなく、あくまでもPHPはWebアプリケーションやサービスを簡単に形にするためのツール・手段と考えましょう。
Webアプリケーションやサービスを形にするためのツール・手段としては、JavaやRuby、Pythonなども考えられます。
そのなかでも、なぜPHPが選ばれるのか、ということを考えてみてください。
PHPの生みの親であるラスマス・ラードフ氏のインタビューで、氏は次のように答えています。
PHPはツールです。ハンマーのようなものです。何の変哲もない道具だけれど,それを使って作られたものは人々の暮らしを変えてきました。
~略~
もっと大規模な,たとえばFacebook,Yahoo!,Wikipediaなど私たちの生活を確実に変えたものも,みんなPHPで書かれたのです。少なくとも最初はね。
PHPは「サービス志向」のエンジニア向け
PHPは思い浮かんだアイデアを素早く形にするための手段・ツールとして最適です。
プログラミングの知識があまりない人でも、簡単にアイデアを形にする目的で開発された言語であるため、「とりあえず動かせる」という状態までは、素早く実現できます。
プログラミング言語を学習する人やエンジニアのなかには、技術志向とサービス志向の2種類の人がいると考えられます。
- 新しい技術を使って開発したい
- 技術的なことを追求したい
- 新たな技術を生み出したい
- 新しいサービスを作りたい
- より良いサービスを作りたい
- 作ったサービスをユーザーに利用してもらいたい
技術思考の人にとっては、PHPのデメリット部分が気になることでしょう。
しかし、サービス志向の人にとっては、素早くアイデアを形にすることができるPHPは、最適なツール・手段であるといえます。
まとめ:手早くWebサービスを形にしたい人こそPHP言語!
PHPはWeb開発に適した言語であり、メリットもデメリットもあります。
「初心者でも扱いやすい」「PHPで作られたサービスは良くない」など、さまざまな意見もありますが、アイデアを比較的簡単に素早く形にするためのツール・手段としては、最適なものでしょう。
初心者でも習得しやすいプログラミング言語ですが、習得しやすいという理由で選ぶのではなく、手早くWebアプリケーション、サービスを形にすることができる、という理由で選ぶべきだといえます。
Webアプリケーションやサービスを開発したいと考えているのであれば、PHPから学習してみてはいかがでしょうか。