かのうのブログ

旅や私生活のあれこれを書いていきます。

静的(static)変数のスコープについて(PHP)

最近チェスにちょっとハマっちゃってるかのうです。

はい、こんばんはー。

 

今回は、頭の整理のためにstatic変数の挙動について書きます。

 

プログラムには、変数という値を収納する箱みたいなものがあります。これは、コンピュータの記憶装置のメモリ内に準備されます。

さて、変数には以下の3種類あります。

グローバル変数:関数で宣言した変数、(※)記憶寿命はプログラムが終了するまで。

・ローカル変数:関数で宣言した変数、記憶寿命は関数の処理が終わるまで。

・static変数:静的な変数、記憶寿命はプログラムが終了するまで。

(※)記憶寿命とは変数の箱が存在して、値を記憶できる期間。

 

さて、下記のプログラムを書いてみました。

$a:グローバル変数

$b:ローカル変数

$c:static変数 

f:id:V3bxNn1ljsFzaOm:20210218220151p:plain

static変数は、同一関数内で使わなければいけないようです。

 

一応参考に。。。

f:id:V3bxNn1ljsFzaOm:20210218221326p:plain

関数の処理が終了しても、再度関数を呼び出すとstatic変数の値を保持していることがわかりますねー。

今回は以上です。