====== PHPについて ======
PHPはオープンソースのプログラミング言語のひとつ、Webサーバーで動作するサーバーサイドアプリケーションの作成できます。
----
===== 特徴 =====
動的なWebページを表示するために開発された経緯からWebアプリケーションの構築が他の言語に比べて容易です。
具体的には、Web上で利用頻度の高い命令や機能が数多く標準搭載されているので後付のライブラリーなどを用意しなくて高度な開発が可能です。ライブラリが乱立してないので開発方法が一元化され初心者の問題解決がしやすい環境になっています。また「HTML構文中に直接プログラムを記述できるため」HTMLデザインとの位置関係などが把握しやすいです。
欠点は、多のプログラミング言語に比べて基本命令や関数が多すぎる事。あまりにも多く重複した関数もあるためマイナーバージョンアップ(小規模アップデート)であっても命令や関数の廃止や仕様変更が頻繁にあり既存のプログラムが動かなくなるケースがあります。また関数が多すぎて度々変更するので暗記するのはほぼ不可能、さらにプログラミング初心者が便利な関数の多いPHP言語から入門すると基本関数の少ない他のプログラミング言語への転向が難しくなる弊害があります。
===== 他のWebプログラム言語との比較 =====
Webプログラミング言語のPerl(CGI)とJavaScriptとPHPを比較すると。
==== Perl(CGI) ====
PerlとPHPはWeb用としてはほぼ同じ種類のプログラミング言語でサーバー上でプログラムを実行して結果をブラウザに送信します。また処理に競合する所が多いので1つHTMLを出力する場合はどちらか片方の言語しか使えません(HTMLが分かれていれば1つのWebサイトで混在する事は可能)。
大きく違うのは、PHPはHTMLファイル中にプログラムを書けますがPerlはプログラム中にHTMLを書きプログラムによってHTMLを出力する点です。下記にPHPとPerlでほぼ同じ処理をするプログラムを比較するとわかると思いますがPerlの方は事前処理があったりと複雑になっているがわかるとおもいます。
PHPの方が優れているように見えますが、PerlはWebに特化していないのでWebを使わないアプリケーション開発に使用できますがPHPはHTMLへの組み込みやブラウザ出力が基本のためWeb以外の現場ではあまり使われていません。
PHPプログラム
タイトル
Hello World';
$x=1;
$y=$x+2;
echo '計算結果='.$y.'
';
?>
比較用のPerlプログラム
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print '';
print '';
print ' ';
print ' ';
print ' タイトル';
print ' ';
print ' ';
print ' Hello World
';
$x=1;
$y=$x+2;
print ' 計算結果='.$y.'
';
print ' ';
print ' ';
exit;
==== JavaScript ====
JavaScriptとPHPは両方ともhtmlファイルにプログラムを埋め込む事ができるプログラミング言語です。
大きく違う点は、PHPはサーバー上で動作しJavaScriptはWebブラウザ上(クライアント側)で動作する点です。サーバー上で動作するPHPはWeb側から操作できないサーバー深部のデータにアクセスしたりファイルを作成する事がきますが、出力するデータは静的なhtmlなのでブラウザ表示後に内容を変化させる事はできません。対してJavaScriptはサーバー深部のデータにアクセスしたりサーバーにファイルを作成する事はできませんが、ブラウザ上で動作するためサーバーと通信しなくてもユーザーの操作に反応して表示を変更するなど動的な表現ができます。
もう一つ違う点は、JavaScriptはユーザーの設定により無効化できたり希少ながらJavaScriptの動作しないブラウザもあるので対策が必要となります。PHPはサーバーで動作するのでユーザー側で無効化できません。
両者は同時に使用する事ができ、サーバー側で無ければ処理できない処理はPHP、ブラウザ側で無ければできない処理はJavaScript、と連携させるとより複雑で高度な作業が可能となります。