PHP変数の可用性
多くの初心者のPHPプログラマーは、PHP変数がPHPプログラム内でいつ利用できるかについて混乱しています。基本的には どうやって そして どこ 変数が宣言または作成されます。以前のチュートリアル*では、ほとんどの場合、変数に初期値を与えることで変数を宣言することを学びました。

$ dollar_amt = 10;

それは世話をします どうやって 変数を宣言するが どこ 変数を宣言することも重要です。変数は、作成された場所でのみ使用できます。たとえば、関数内で変数を作成すると、その変数はその関数内でのみ使用可能になります。その関数の外部には存在しません。関数は変数を含むボックスと考えてください。そのボックスの外側では変数を使用できません。例を見てみましょう。以下の関数は、変数$ dollar_amtを作成し、文をWebブラウザーに出力します。

関数print_cost()
{$ dollar_amt = 10;
echo "コストは$ dollar_amtドルです。"; }

echoステートメントで変数を使用しており、そのechoステートメントは変数を作成した同じ関数の一部であるため、ここでは問題はありません。 (すべてがボックス内にあります。)しかし、プログラムの後半で2番目のechoステートメントで変数を使用する場合、ボックス内で作業することはできません。変数を作成した元の関数の「外部」変数を使用しようとします。

関数print_cost()
{$ dollar_amt = 10;
echo "コストは$ dollar_amtドルです。"; }
------
------
echo "$ dollar_amtドルの小切手を送信する必要があります。";

この変数は2番目のechoステートメントでは使用できないため、Webページは次のようになります。

ドルの小切手を送る必要があります。

ただし、関数内だけでなく、プログラム内のどこにでも変数を作成できます。関数の外部、たとえばプログラムの本体内で宣言された変数はどうですか?同じ可用性ルールが当てはまります。変数は、作成された場所でのみ使用できます(この場合、ボックスの外側)。関数/ボックス内で変数を使用しようとすると、使用できません。たとえば、プログラムで$ cent_amt変数の初期値を50に設定した場合、以下の関数内では使用できません。

$ cent_amt = 50;


関数print_cost()
{$ dollar_amt = 10;
echo "コストは$ dollar_amtドルと$ cent_amtセントです。"; }

Webブラウザーでは、次の文のみが表示されます。

費用は10ドルとセントです。

しかし、関数で「外部」変数を使用する必要がある場合はどうでしょうか。この問題を解決する簡単な方法は、関数を呼び出すときにその変数を引数として渡すことです。

print_cost( "50");

-------
* PHP変数と関数に関する以前のチュートリアルのいくつかを読むことをお勧めします。