1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【PHP】スコープごとの変数の呼び出し方($this->、$GLOBALS[''])

Last updated at Posted at 2020-04-19

概要

変数の呼び出し方です。
グローバル変数(クラスより外)は、$GLOBALS[' '] で呼ぶ。
プロパティ(クラス内、かつメソッドの外)は、$this->で呼ぶ。
ローカル変数(スコープ内)は、宣言した変数をそのまま呼ぶ。
ただし、グローバル変数はあまり使わない方が良いとされています。

出力の例

クラスを定義して同ファイル内で実行まで記述することはないですが、処理の流れに沿ったサンプルとして書きます。


<?php

$var = 'global value';

class SimpleClass
{
  // プロパティの宣言
  public $var = 'property value';

  // メソッドの宣言
  public function displayVar() {
    $var = 'local value';
    echo $GLOBALS['var']. PHP_EOL;  // 'global value'を出力
    echo '<br>';
    echo $this->var. PHP_EOL;  // 'property value'を出力
    echo '<br>';
    echo $var. PHP_EOL;  // 'local value'を出力
  }
}

$sample = new SimpleClass;
$sample->displayVar();

PHP_EOLは改行文字で<br>ではないためブラウザで出力する際は改行表示されません。
そのため改行に"<br>"をechoしています。

出力イメージ
global value
property value
local value

別例

こちらも処理の流れに沿ったサンプルとして書きます。
にしてもメソッドの下に実行コードを書くのは気持ち悪い...


<?php

$var = 'global value';

class SimpleClass
{
  // プロパティの宣言
  public $var = 'property value';

  // メソッドの宣言
  public function displayVar() {
    $var = 'local value';
    echo $var;  // 'local value'を出力
  }
}

echo $var. '<br>';  // 'global value'を出力
$sample = new SimpleClass;
echo $sample->var. '<br>';  // 'property value'を出力
$sample->displayVar();
出力イメージ
global value
property value
local value
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?