Developer

【PHP基礎】PHPの概要
2020.09.20
Lv1

【PHP基礎】PHPの概要

PHPの概要

プログラミング言語PHPの概要を学びます。
具体的には以下の2点です。

  1. PHPとは
  2. PHPの特徴

PHPとは

PHPは、プログラミング言語の一種です。
正式名称を、「PHP: Hypertext Preprocessor」といいます。

PHPは、HTML埋め込み型のサーバサイド・スクリプト言語として分類されます。
動的にHTMLデータを生成することによって、動的なウェブページを実現できるのが最大の強みです。

HTMLの動的生成は、JavaScriptを使ってフロントサイドでもできますが、
DBやサーバーサイドのデータに基づく条件分岐や、データのHTML内への埋め込みをする場合、
PHPで行うのがセキュリティでも、データの受け渡しのために必要なコード量の節約でも、勝ります。

PHPの処理(動作)はウェブサーバ上で動作します。
その手順は以下の通りです。

  1. ウェブサーバ上のURLが要求される
  2. 1が行われたことへの反応として、1のURLに記述されたPHPのプログラムを実行
  3. 2の結果をウェブブラウザに対して送信

この言語処理系自体は、C言語で記述されています。
PHPは、もともと、Rasmus Lerdorf氏がPerlで書いた小さなCGIラッパーであったのですが、
プロセスを生成するコストを下げるためにC言語で書き直しを図ったのが最初といわれています。

PHPの基本的な概念

PHPの基本的な役割は、以下の図にある通り、
言語エンジン、データベース、他のプログラムとApacheを連携させることです。


PHPの特徴

PHPの特徴は、以下の8つになります。

  1. 多彩なデータベースをサポートし、その開発が抜群に容易。
  2. マルチプラットフォームである。
  3. Apache(Webサーバ)との高い親和性。
  4. 各種ライブラリの充実。
  5. 親しみやすい記述方法。
  6. ユーザー入力(Post/Get/Cookie)を自動的に変数に変換。
  7. デバッグが容易。
  8. ユーザーによる機能拡張が可能。

1. 多彩なデータベースをサポートし、その開発が抜群に容易

Oracle、DB2、SQLServer、Sybase、Informixをはじめとする商用DBMSや、
PostgreSQL、MySQLといったフリーDBMSへのインタフェースを標準で備えています。
また、データベースとプログラミング言語との仲立ちである、
ODBCインターフェースに対応する関数も標準で備えています。

2. マルチプラットフォームである。

マルチプラットフォームとは、開発環境や動作環境に制約がなく、
メジャーな開発環境や動作環境に対応していることです。
例えばOSなら、Linux、Windows、商用UNIX(Macなど)に対応していることが最低限求められます。
PHPは、マルチプラットフォームの歴史が長いプログラミング言語です。
Macだけへの対応から、最近マルチプラットフォーム化したSwift、
Windowsだけの対応から、最近マルチプラットフォーム化したC#などに比べて、
どのプラットフォームでも、環境構築と開発のノウハウが確立されています。

3. Apache(Webサーバ)との高い親和性。

CGI(Perl)とは異なり、Apache の一部として動作させることができるので、
無駄なリソースを消費せず、処理も高速です。
必要に応じてCGIとして動作させることも可能です。

4. 各種ライブラリの充実

PDF/GIF生成・Session管理・XMLの読み取りや生成・IMAP・LDAP・Javaとの連携などに対応した
サードパーティー性のライブラリが充実しています。

5. 親しみやすい記述方法

PHPの基本的な文法は、C、Java、Perlなどの他のメジャーなプログラミング言語と共通しています。
ですので、これらの言語のプログラマーは、違和感なくPHPを使い始めることができます。
例として、クラス定義を以下に載せます。

class StrUtil{
    public static function str(String $rawString = null, String $alternative = ""){
        if(isset($rawString)){
            return $rawString;
        }else{
            return $alternative;
        }
    }
}

また、ファイル全体をスクリプトとして作成する必要はなく、
HTML文書のうちの必要な部分だけをPHPで書くといった使い方ができます。

<ol>
	<?php
	echo "<li>PHP</li>";
	?>
</ol>

6. ユーザー入力(Post/Get/Cookie)を自動的に変数に変換

GETメソッドのパラメーターは、$_GET、POSTメソッドのパラメーターは$_POST、クッキーの中身は$_COOKIEという、
自動定義変数に格納されています。
そのため、これらを手動で取り出す処理を書く必要がなく、
プログラミングが容易になります。

7. デバッグが容易

エラーが発生した場合には、発生した行番号やエラー内容などを表示するためのHTML文が自動的に生成されます。
それにより、エラー情報がブラウザ上に表示されるのでデバッグが容易です。

8. ユーザーによる機能拡張が可能

オープンソースなので、関数やクラスを独自に開発できます。
以下のコードは、与えられたデータのリストを、
自動的に順序付きリストのHTMLにして出力してくれる関数を開発して、実行しています。

PHP基礎 連載目次リンク

PHP基礎 連載目次