PHP 変数


変数は情報を格納するための「コンテナ」です:

サンプル

<?php $x=5; $y=6; $z=$x+$y; echo $z; ?>

サンプルを実行 »

代数と同様に

x=5
y=6
z=x+y

代数では、文字(x など)を使用し、それに値(5 など)を代入します。

上記の式 z=x+y から、z の値が 11 であると計算できます。

PHP では、これらの文字は変数。

lamp 変数はデータを格納するためのコンテナです。


PHP 変数

代数と同様に、PHP 変数には値(x=5)または式(z=x+y)を代入できます。

変数名は非常に短い名前(x や y など)も、より説明的な名前(age、carname、totalvolume など)も使用できます。

PHP 変数の規則:

  • 変数は $ 記号で始まり、その後に変数名が続きます
  • 変数名は英文字またはアンダースコア文字で始まる必要があります
  • 変数名は英文字、数字、およびアンダースコア(A-z、0-9 および _ )のみを含めることができます
  • 変数名にスペースを含めることはできません
  • 変数名は大文字と小文字を区別します($y と $Y は別の変数です)
lamp PHP の文と PHP 変数はどちらも大文字と小文字を区別します。

PHP 変数の作成(宣言)

PHP には変数を宣言するコマンドはありません。

変数は、最初に値を代入したときに作成されます:

サンプル

<?php $txt="Hello world!"; $x=5; $y=10.5; ?>

サンプルを実行 »

上記の文の実行中、変数txtは値を保存しますHello world!、かつ変数xは値を保存します5。

注:変数にテキスト値を代入するときは、テキスト値を引用符で囲んでください。


PHP は弱い型付けの言語です

上記のサンプルでは、PHP にその変数のデータ型を宣言する必要がないことに気付きます。

PHP は変数の値に基づいて、変数を自動的に正しいデータ型に変換します。

強い型付けのプログラミング言語では、変数を使用する前に、変数の型と名前を宣言(定義)する必要があります。


PHP 変数のスコープ

変数のスコープとは、スクリプト内で変数が参照・使用できる部分のことです。

PHP には4つの異なる変数スコープがあります:

  • local
  • global
  • static
  • parameter

ローカルスコープとグローバルスコープ

すべての関数の外部で定義された変数は、グローバルスコープを持ちます。関数内を除いて、グローバル変数はスクリプトのどの部分からでもアクセスできます。関数内でグローバル変数にアクセスするには、global キーワードを使用する必要があります。

PHP 関数の内部で宣言された変数はローカル変数であり、関数の内部でのみアクセスできます:

サンプル

<?php
$x=5; // グローバル変数

function myTest()
{
    $y=10; // ローカル変数
    echo "<p>関数内の変数をテスト:<p>";
    echo "変数 x は: "$x";
    echo "<br>";
    echo "変数 y は: "$y";
}

myTest();

echo "<p>関数外の変数をテスト:<p>";
echo "変数 x は: "$x";
echo "<br>";
echo "変数 y は: "$y";
?>

上記の例では、myTest() 関数は $x と $y 変数を定義しています。 $x 変数は関数の外で宣言されているため、グローバル変数です。 $y 変数は関数内で宣言されているため、ローカル変数です。

myTest() 関数を呼び出して2つの変数の値を出力すると、関数はローカル変数 $y の値を出力しますが、$x の値は出力できません。$x 変数は関数の外で定義されているため、関数内で使用できないからです。関数内でグローバル変数にアクセスするには、global キーワードを使用する必要があります。

次に、myTest() 関数の外で2つの変数の値を出力すると、関数はグローバル変数 $x の値を出力しますが、$y の値は出力できません。$y 変数は関数内で定義されており、ローカル変数であるためです。

Note 異なる関数内で同じ変数名を使用できます。これらの関数内で定義された変数名はローカル変数であり、その関数内でのみ有効だからです。

PHP の global キーワード

global キーワードは、関数内でグローバル変数にアクセスするために使用します。

関数内で関数外に定義されたグローバル変数にアクセスするには、関数内の変数の前に global キーワードを付ける必要があります:

サンプル

<?php $x=5; $y=10; function myTest() { global $x,$y; $y=$x+$y; } myTest(); echo $y; //出力 15 ?>

サンプルを実行 »

PHP はすべてのグローバル変数を $GLOBALS[index] という名前の配列に格納します。index変数。変数の名前を保存します。この配列は関数の内部からアクセスでき、グローバル変数を直接更新するためにも使用できます。

上記の例は次のように書くこともできます:

サンプル

<?php $x=5; $y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; ?>

サンプルを実行 »


Static スコープ

関数の実行が完了すると、そのすべての変数は通常削除されます。ただし、ローカル変数を削除したくない場合もあります。

これを行うには、変数を最初に宣言するときにstaticキーワードを使用します:

サンプル

<?php function myTest() { static $x=0; echo $x; $x++; echo PHP_EOL; //改行 } myTest(); myTest(); myTest(); ?>

サンプルを実行 »

その後、関数を呼び出すたびに、その変数は前回関数が呼び出されたときの値を保持します。

注:この変数は依然として関数のローカル変数です。


パラメータのスコープ

パラメータ(引数)は、呼び出し元のコードから関数に値を渡すためのローカル変数です。

パラメータは、関数宣言の一部としてパラメータリスト内で宣言されます:

サンプル

<?php function myTest($x) { echo $x; } myTest(5); ?>

これについては「PHP 関数」の章で詳しく説明します。

その他の拡張