初心者必読!PHPでできることとできないこと

  • 2017-11-6

PHPはWebサイト構築で人気のスクリプト言語です。RubyやPythonと並んで、今最も注目されているスクリプト言語でしょう。 今回は、そんなPHPでできることとできないことについてご紹介していきます。

PHPの概要

(1)PHPとは

PHPは、Hypertext Preprocesserを再帰的に省略した言葉です。歴史は意外と古く、1995年にPHP1.0がリリースされています。最新版は2016年にリリースされたPHP 7.1です。PHPはサーバサイドで動作させるのが基本です。他の言語と違い、クライアント(パソコン)側での処理を記述するものではありません。PHPの特徴としては、以下が挙げられます。

  • スクリプト言語である
  • Webアプリケーション構築のための豊富な組み込み関数が用意されている
  • C言語やJavaに似た文法
  • クラスベースオブジェクト指向をサポートしている
  • 例外処理をサポートしている
  • HTMLに埋め込んで使う

(2)PHPとHTMLの違い

PHPはHTMLに埋め込んで使うので、両者を混同してしまいがちです。HTMLはWebページ内の静的コンテンツ(実行時に変化しないコンテンツ)の記述に使います。一方PHPはWebページ内の動的コンテンツ(実行時に変化するコンテンツ)の記述に使います。PHPはプログラミング言語ですが、HTMLは違います。HTMLに埋め込んだPHPのサンプルを見てみましょう。

(PHPのサンプル)

<HTML>
<HEAD>
<TITLE>PHPのサンプル</TITLE>
</HEAD>
<BODY>
<php?
echo ""hello, php world!"";
?>
</BODY>
</HTML>

このサンプル中、大文字で書かれている部分がHTMLタグです。そして小文字で書かれている部分がPHPソースです。このように、PHPはHTMLの中に埋め込んで使います。

PHPでできること

(1)Webアプリ開発

PHPはHTMLに埋め込むことが利点の言語で、Webアプリ開発用の組み込み関数が豊富です。つまり、Webアプリ開発に特化した言語です。当然ながら、Webアプリの開発に向いていて、高い生産性を発揮できます。

(2)PHPで作られたサイトの改修

PHPで作られて現在公開されているサイトに機能を追加したり、変更したりする場合は、当然ながらPHPを使うのが一番良い方法です。PHP以外のHTML埋め込み型(例えばJSP)でもやれなくはありませんが、環境構築が煩雑になり、プログラム自体も2種類の言語が入り乱れてしまい、とてもメンテナンスがしにくくなります。やはり、PHPで作られたサイトの改修には、PHPを使うのが一番です。

PHPでできないこと

(1)デザイン

PHPはプログラミング言語ですので、Web画面のデザインを行うことはできません。Web画面のデザインには、CSS(Cascading Style Sheet)を使います。以前はHTMLでもデザインを行うこともありましたが、HTML5になってからはHTMLでデザインを行うことは非推奨になりました。

HTMLは静的コンテンツの内容記述に注力し、それがどのように表示されるかはCSSで定義するのが主流です。こうすることで、CSSを差し替えるだけでHTMLを変更すること無く、Web画面のデザインを変えることができます。PHPでも、一部のWeb画面部品を動的に表示したり、色やフォントを変えたりする場合もありますので、完全にデザインに手を出さないわけではありませんが、デザインはCSSで行い、PHPは動的コンテンツの編集に注力する方がメンテナンスしやすい、良いコードになります。

(2)システムのベースを作る

PHPはHTMLに埋め込んで使います。これは、MVC(Model,View,Controll)モデルで言うところのView層に記述するということです。View層は入力受付や情報の表示など、ユーザインタフェースを担当する層です。PHPが手軽なのは、この一番表面に立つ層に直接プログラムを埋め込むことができるからです。しかし、そのため、逆に言えば表面の層以外の処理を書くのが苦手ということになります。もちろんそれを補うために様々なフレームワークがありますが、基本的には表層を得意とする言語です。このため、システムの根幹に関わるような処理を作るのには適していません。実際、PHPの実行エンジンそのものはPHPでなくC言語で書かれています。

まとめ

今回は、PHPでできることとできないことについてご紹介してきました。PHPはWebアプリ開発を得意とします。しかし、システムの根幹に関わるような処理を書くのには適していません。PHPはWebアプリ開発用だと考えれば良いでしょう。

ページ上部へ戻る