読者です 読者をやめる 読者になる 読者になる

flandlescarlet's diary【情報工学生の備忘録】

元機械工学科所属だった情報工学生です。JavaScriptで適当に何かを作ったり、絵を描いていたりします。

PHPとJavascriptの違い

WEBを開発していく言語は多数ありますが、そのうちのメジャーなこの二つの言語の違いに関して考えてみました。

JavaScriptだけまたPHPしかやっていない、また双方やっていないという事も踏まえて隅から違いを挙げていきます。

応用部分については詳しくないため、一部処理が省いて偏見的になっている部分があるかもしれませんが、基本的には常識内容で通ると思います。

 

変数の宣言

JavaScript

 var hoge; //関数内でローカル変数、それ以外は基本グローバル変数

hoge; //全部の範囲でグローバル変数

PHP

 $hoge; //関数内でローカル変数、それ以外は基本グローバル変数

global $hoge
echo $hoge //ローカル変数とグローバル変数を使い分ける

備考

  • JavaScriptには$を初めに設置する必要がなく、PHPは変数単体でスコープの制限が付けられない。
  • 個人的には変数はPerlよりなPHPよりもJavaScriptの方が迅速に書けてやりやすい。

ソース上での違い

JavaScript

//Code

for
(i=0;i<=5;i++){
document.write("Hello!!World");
}

//Websource
 
for(i=0;i<=5;i++){
document.write("Hello!!World");
}

PHP

//Code

for
($i=0;$i<=5;$i++){
echo("Hello!!World");
}

//Websource

Hello!!WorldHello!!WorldHello!!WorldHello!!WorldHello!!World

備考

  • JavaScriptの場合スクリプトのソースがそのまま出るのでソースが雑になる、PHPはソースが出ないため普通のHTML構文として綺麗に表示させられる。
  • JavaScriptでおみくじスクリプトなどを作るとソースから「大吉」「中吉」の処理が見えてしまう(ランダム関数の所で)

ランダム関数の違い

JavaScript

 var random_date = Math.floor(Math.random()*3)+1;
document.write(random_date); //1~3の数が表示される

PHP

 $random_date = array("1","2","3");
shuffle($random_date);
echo($random_date[0]); //1~3の数が表示される

$random_date = rand(1,3);
echo($random_date); //1~3の数が表示される

備考

  • JavaScriptは基本的に組み込み関数一つでしかランダム関数を生成できない。
  • PHPは多様の関数の種類よりいろんな方法を考えられる。
  • またrand関数は数字で、shuffle関数が連想配列等で使用するのがベストだと思う。
  • ランダム関数の場合、先にパターンを用意しているJavaScriptでは1~3の数字がバレてしまうおそれがある。

データの受け渡し

JavaScript

 none;

PHP

//index.html
 <form method="post" action="index.php">
<input type="text" name="name">
<input type="submit">
</form>
//index.php
$name = $_POST["name"] //スーパーグローバル変数に格納される

備考

  • JavaScriptは別のページにデータを受け渡しできない逆も然り。
  • PHPは双方にデータを受け渡しできるスーパーグローバル変数は$_POST意外にも$_GETや$_COOKIEなど多様にある。

 コメントのつけ方

JavaScript

 // コメントアウト
/* コメントアウト */

PHP

 // コメントアウト
# コメントアウト
/* コメントアウト */

備考

  • JavaScriptには基本的に二つのコメントアウトがある。
  • PHPには基本的に3つのコメントアウトがある。
  • PHPの#のコメントアウトはPerl方針のコメントアウトだが//と同じなため現在ではあまり使用されない。

 HTML<form>タグとの各親和性

JavaScript

<form name="F1">
<input type="text" name="T1">
</form>


<script type="text/JavaScript">

var date = document.F1.T1.value;

</script>


//フォームタグはDOMに関して利用されることが多い

PHP

//index.html
<form method="post" action="index.php">
<input type="hidden" name="date" value="12345">
<input type="file" name="apload">
<input type="text" name="name">
<input type="submit">
</form>

//index.php
if($_POST["date"] == 12345){
echo($_POST["name"] . "さんこんにちわ");
}


備考

  • JavaScriptはフォーム間でのデータ送信はせずに、DOMだけの処理にとどまる
  • PHPは別のページにデータを受け渡すためにフォームを使う。

 日付の呼び出し

JavaScript

<script type="text/JavaScript">

date = new Date();
H = date.getHours();
M = date.getMinutes();
S = date.getSeconds();
String(H);

String(M);
String(S);
document.write( H + ":" + M + ":" + S);

</script>

PHP

<?php
  $today = date("H:i:s");
    echo($today);
?>

備考

  • JavaScriptは各日付部位を呼び出さなければならない
  • JavaScriptの日付はnumberの型で形成されるためstring(文字列)化しなければならない