トップページ > コンテンツ > プログラミング入門 > Ajax入門 > PHP入門 > PHP基本まとめ > PHPのスコープの話

phpでは関数の外に変数を用意しても使ってくれない。
<?php
  $a = 3;
  function test() {
    $b = $a + 5;
  }
?>
のようなケース。
関数より外の変数を使うには以下のように関数内部でglobal宣言しなければならない。
<?php
  $a = 3;
  function test() {
    global $a;
    $a = $a + 5;
  }
  function sample() {
    global $a;
    $a = $a + 4;
  }
  test(); //この関数実行後の$aの値は8
  sample(); //この関数実行後の$aの値は12
?>

これがclassの場合、
class ClassA {
  private $data = "data";
  function test() {
    print $this->data;
  }
} 	  
$test = new Test();
$test->test();
print $dataはうまくいかず、上記のようにthis経由しないとうまく使えない。

最終更新:2011年04月03日 12:21