PHPはWebプログラミング言語のひとつ、一番の特徴はHTML構文中にプログラムコードを記述できる事で、HTMLの任意の場所にデータ出力が可能です。
基本的な動作はCGI(Perlなど)と同じサーバサイドプログラムで、ブラウザからPHPプログラムの書いてあるファイルを開こうとするとサーバー上で動作しているPHPモジュールがPHPファイル解析・実行して、結果をWebブラウザに出力します。
Webサーバーで動作するためサーバー内のデータを直接読み書きでき、出力されるデーターはHTMLなのでブラウザ側に特別な設定が必要ありませ
PHPはデータベースアクセスなどWebページ作成に便利な機能が多く内蔵されてるのも特徴の一つです。
Webプログラミング言語のPerl(CGI)とJavaScriptとPHPを比較すると。
PerlとPHPはWeb用としてはほぼ同じ種類のプログラミング言語でサーバー上でプログラムを実行して結果をブラウザに送信します。また処理に競合する所が多いので1つHTMLを出力する場合はどちらか片方の言語しか使えません(HTMLが分かれていれば1つのWebサイトに混在する事はできます)。
大きく違うのは、PHPはHTMLファイル中にプログラムを書けますが、Perlはプログラム中にHTMLを書きプログラムによってHTMLを出力する点です。下記にPHPとPerlでほぼ同じ処理をするプログラムを比較するとわかると思いますがPerlの方は事前処理があったりと複雑になっているがわかるとおもいます。
PHPプログラム
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>タイトル</title> </head> <body> <?php echo '<h1>Hello World</h1>'; $x=1; $y=$x+2; echo '<p>計算結果='.$y.'</p>'; ?> </body> </html>
比較用のPerlプログラム
#!/usr/local/bin/perl print "Content-type: text/html\n\n"; print '<!DOCTYPE html>'; print '<html lang="ja">'; print ' <head>'; print ' <meta charset="utf-8">'; print ' <title>タイトル</title>'; print ' </head>'; print ' <body>'; print ' <h1>Hello World</h1>'; $x=1; $y=$x+2; print ' <p>計算結果='.$y.'</p>'; print ' </body>'; print ' </html>'; exit;
注意:Perlの名誉のために書いておきますが、PerlはWebに特化していないのでWebを使わないアプリケーション開発に使用できますがPHPはHTMLへの組み込みやブラウザ出力が基本のためWeb以外ではあまり使われていません。
JavaScriptとPHPは両方ともhtmlファイルにプログラムを埋め込む事ができるプログラミング言語です。
大きく違う点は、PHPはサーバー上で動作しJavaScriptはWebブラウザ上(クライアント側)で動作する点です。サーバー上で動作するPHPはWeb側から操作できないサーバー深部のデータにアクセスしたりファイルを作成する事がきますが、出力するデータは静的なhtmlなのでブラウザ表示した内容を変更する事はできません。対してJavaScriptはブラウザ上で動作するためサーバーと通信しなくてもユーザーの操作に反応して表示を変更するなど動的な表現ができますが、サーバー深部のデータにアクセスしたりサーバーにファイルを作成する事はできません。
もう一つ違う点は、JavaScriptはユーザーの設定により無効化できたり希少ながらJavaScriptの動作しないブラウザもあるので対策が必要となります。PHPはサーバーで動作するのでユーザーは無効化できません。
両者は同時に使用する事ができ、サーバー側で無ければ処理できない処理はPHP、ブラウザ側で無ければできない処理はJavaScript、と連携させるとより複雑で高度な作業が可能となります。