PHPというワードを聞いたことがありますか?「聞いたことはあるけど、詳しくは知らない」といった方もいるでしょう。単刀直入に言うと、PHPはプログラミング言語のひとつです。世の中には、PHPの他にもたくさんの言語があり、それぞれに特徴を持っています。言語ごとに守備範囲が決まっており、できることはある程度制限されます。さまざまな言語の中から、適切な言語を選ぶことが重要なわけですね。それには、しっかりとした知識が必要です。
この記事では、PHPという言葉の意味や特徴を知りたい方のために、PHP全般について説明していきます。概要や特徴、他言語との比較まで、広く解説していきます。エンジニアでない方でもわかるように、可能な限り専門用語を避けて優しくお伝えします。ぜひご一読して、PHPの知識を深めましょう。
PHPは、どんなプログラミング言語なの?
実は、PHPは省略形で、正式名称は「PHP: Hypertext Preprocessor」です。さらにいえば、PHPは、「Personal Home Page」に由来しています。PHPは、ウェブページにプログラムを組み込むために作られました。通常、ウェブサーバーで動作させる言語であり、ブラウザと協調して動作します。
たとえば、あなたがブラウザで、PHPで作られたウェブページを見るとします。最初に、ブラウザからサーバーにページを返すように依頼し、次に、サーバーがPHPを実行した結果をブラウザに返します。すると、ブラウザにはHTMLが返ってくるので、それをあなたがウェブページとして閲覧できるというわけです。
非常に需要の高い言語のひとつであり、インターネット上のウェブサイトの25%以上を占めると言われている有名ブログシステムWordPressの開発言語でもあります。これだけでも、どれだけ広く使われているかがお分かりになるでしょう。そのため、PHPではWordPress関連の案件が豊富です。
初めて登場したのは1995年のことで、プログラミング言語の中では比較的古い言語になります。しかし、20年以上たった現在でもバージョンアップが続けられており、PHP 8 系の最新バージョン は PHP 8.1.11 、 PHP 7 系の最新バージョンは PHP 7.4.32となっています。7.x系から高速化や機能追加などが図られていて、まだまだ現役の言語、といった印象を受けます。今後も長らく開発が続けられることでしょう。
参照:php.net
PHPには、どんな特徴があるの?
次に、PHPが備える特徴について説明していきます。特徴といっても、メリットばかりではありません。ここでは、PHPの悪い面も含めて、ありのままお伝えします。
サーバーで動作する
先ほどもお伝えしたとおり、PHPはウェブサーバー上で動作します。基本的に、ページが1回表示されるごとに、PHPも1回実行されます。このため、アクセスが集中すると、サーバーが遅くなったり、メモリが足りなくなったりすることもあります。こういった場合は、PHPの実行回数が最小限に済むように、PHPの実行結果であるHTMLを保存しておき、しばらくの間保存されたものを返す、という対策を取ります。いわゆる、キャッシュと呼ばれるものです。この他にもさまざまな方法があります。
習得しやすい
PHPは、”比較的”習得しやすい言語です。いい意味で保守的な言語なので、最近の言語に実装されているような、ややこしい構文はありません。また、クラスなどの難しい部分を覚えなくても、手続き的な流れでプログラミングできるため、初心者の方でもとっつきやすいと言えます。いくつか構文を覚えるだけで、プログラムらしいことができます。
構文がやや古めかしい
歴史のある言語のため、昔ながらの構文を引きずっています。最近の言語から見ると、やや古臭い構文に見えます。逆にいえば、キーワードなどが省略されていないので、覚えやすい構文だとも言えます。好みの問題もあるので、一概に悪いともいえません。
HTMLと混合して記述できる
PHPの最大の特徴は、PHPファイルに、HTMLを混在させられることです。ひとつのPHPファイルに、プログラムであるPHPの部分と、そのままブラウザに出力されるHTMLの部分を混在させることができます。このため、HTMLの中にPHPコードを埋め込むことができ、直感的にHTMLとPHPを組み合わせることができます。ただし、何でもかんでもHTMLと一緒にしてしまうとコードがぐちゃぐちゃになってくるので、できるだけ分離しておくと良いでしょう。
脆弱性が発見されることもある
昨今、ウェブサーバーは常に攻撃にさらされています。攻撃者は、脆弱性(バグや設計上のミスなど)を突いて攻撃を仕掛けてくるわけですが、そのターゲットにはPHPも含まれます。ウェブサーバー上ではPHPが実行されているので、PHP自体に脆弱性があるとサーバーを乗っ取られたり、情報が流出したりする可能性があります。そのため、脆弱性を修正するためのバージョンアップを随時行う必要があります。
また、自分で書いたPHPコードであっても同じです。セキュリティに無頓着だと、自ら脆弱性を作り込んでしまう可能性があります。典型的な脆弱性は、データベースやファイル、OSなど、PHPが外部のシステムと関わる部分で起きます。既知の脆弱性を知り、対策を講じておかなければいけません。これはPHPに限った話ではありませんが、動作しているサーバーが多いため、より攻撃者に狙われやすいのです。
どんな違いがある?PHPと他の言語との比較
最後に、PHPと他の言語との比較をしていきます。ここでは同じようなポジションの言語である、RubyとPythonをチョイスしました。PHPとどう違うのか、特色を見ていきましょう。
PHPとRubyの比較
Rubyは、PHPと同じくサーバー上で動作します。Ruby on Railsという鉄板フレームワークがあり、生産性が高いこともPHPと共通していますね。一方、構文は大きく異なり、Rubyはスッキリとした、シンプルな構文を採用しています。Rubyが登場したのは1995年で、PHPと同時期ですが、影響を受けた言語や設計理念の違いから、このような差が生まれたものと思われます。Rubyの構文は特徴的なため、PHPとどちらが好きかは好みが分かれるでしょう。
PHPとPythonの比較
Pythonも、PHPと同じくサーバー上でも動作しますが、最近ではデスクトップでも活躍しています。なぜなら、近年ブームになっている、人工知能(AI)や統計処理との相性が良いからです。Pythonの最大の特徴は、インデントによってブロックを示す構文にあります。
PHPでは、ブラケット({})によって、ブロックを示します。しかし、このブラケットは省略することも可能で、うっかり書き忘れるとバグの原因になってしまいます。一方、Pythonのインデントによる方法ではそのようなことは起きず、バグを未然に防ぎます。しかも、インデントは空白スペースのように見えないため、コードもスッキリするというおまけ付きです。しかしながら、PythonのフレームワークはPHPに比べてシェアが低く、情報が少ないというデメリットがあります。情報の多さでは、やはりPHPに分があります。
まとめ
PHPについて、理解が深まりましたか?PHPは、メジャーな言語のひとつで、ネット上で幅広く使われています。そのため、案件が豊富で、ユーザー数も多く、情報源には困らないでしょう。歴史のある言語ながら、まだまだアップデートが続けられており、これからの発展にも期待が持てます。HTMLと混合して記述できるため、初心者の方でも直感的に学習を進めることができるでしょう。しかし、メンテナンス性とのトレードオフなので、できるだけ分離させたほうが良いでしょう。類似の言語には、RubyやPythonがあります。どちらも人気の言語ですので、興味がある方はそちらも調べてみましょう。
あなたはどのプログラミング言語に一番興味がありますか?
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)