静的(static)変数のスコープについて(PHP)
最近チェスにちょっとハマっちゃってるかのうです。
はい、こんばんはー。
今回は、頭の整理のためにstatic変数の挙動について書きます。
プログラムには、変数という値を収納する箱みたいなものがあります。これは、コンピュータの記憶装置のメモリ内に準備されます。
さて、変数には以下の3種類あります。
・グローバル変数:関数外で宣言した変数、(※)記憶寿命はプログラムが終了するまで。
・ローカル変数:関数内で宣言した変数、記憶寿命は関数の処理が終わるまで。
・static変数:静的な変数、記憶寿命はプログラムが終了するまで。
(※)記憶寿命とは変数の箱が存在して、値を記憶できる期間。
さて、下記のプログラムを書いてみました。
$a:グローバル変数
$b:ローカル変数
$c:static変数
static変数は、同一関数内で使わなければいけないようです。
一応参考に。。。
関数の処理が終了しても、再度関数を呼び出すとstatic変数の値を保持していることがわかりますねー。
今回は以上です。