JavaScriptとPHPの変数スコープの違い

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

ここのところJavaScriptを勉強して分かったことですけど、PHPとずいぶん違う部分があります。その一番の違いは、変数のスコープの違いです。以下にソースを示して違いを確認して見ます。

スポンサーリンク

PHPの場合

<?php
$a = "鈴木さん";
function php_display() {
    echo $a;
}
php_display();
?>

JavaScriptの場合

<script type="text/javascript">
var b = "山田さん";
function js_display() {
    document.write(b);
}
js_display();
</script>

それぞれの実行結果は・・・

PHPの場合の表示



JavaScriptの場合の表示

となり、PHPでは「鈴木さん」は表示されませんが、JavaScriptの場合、「山田さん」は表示されます。PHPでは関数の中から直接グローバルスコープの変数にはアクセスできないが、JavaScriptの場合はそれができる。

PHPで関数の中からグローバルスコープの変数にアクセスするためには・・・

PHPの場合、その2

<?php
$c = "田中さん";
function php_display2() {
    echo $GLOBALS['c'];
}
php_display2();
?>

と書いて、$GLOBALS変数でアクセスしてやると・・・・

今度は「田中さん」が表示されます。単に、「global $c;」と書いても良いのですが、この書き方はオライリーの本によると推奨されていませんでした。$GLOBALSを用いたほうが良いとのことです。

スポンサーリンク
 
スポンサーリンク