静的(スタティック)変数

変数

 状態:  閲覧数:5,928  投稿日:2010-04-24  更新日:  
「既に定義された変数を再び定義しない」変数

「修正子static」を使って新しく静的変数を導入する際に、必ず値を代入する必要はない。
単に「static $a;」のように書くことも出来る。ちなみにこの場合は、「定義」とは言わず「宣言」と呼ぶ。
■静的変数の定義時には、3つの制限がある
▼1.静的変数の定義時には、演算子を利用できない。× static $b = 1 + 2;
▼2.静的変数の定義時には、関数も利用できない。× static $b = test_ok();
▼3.静的変数の定義時には、変数から代入することも出来ない。× static $b = $a;


//2つの似た様な関数を定義し、それぞれ3回ずつ呼び出す。
//2つの関数では共通して、最初に「変数$a」を定義し、「0」をセット。
<?php
function test(){
$a = 0;
$a = $a + 1;
echo $a;//呼び出される度にセットされるので、出力されるのは毎回「1」
echo "
";
}
function test2(){
static $a = 0;//「修正子static」を使うことによって、一度定義された変数は再定義されなくなる。つまり、前回呼び出されて関数の処理が終了した時点の値を保持しているため、その値をそのまま利用する
$a = $a + 1;
echo $a;
echo "
";
}

test();
test();
test();

echo "
";

test2();
test2();
test2();
?>

▼結果
  /demo/static_test.html


スーパーグローバル変数

可変変数

コメント投稿(ログインが必要)



週間人気ページランキング / 7-17 → 7-23
順位 ページタイトル抜粋 アクセス数
1 PHP用語 6
2 コンストラクタ デストラクタ | クラスとオブジェクト 4
2 マジックメソッド(クラスとオブジェクト) カテゴリー 4
3 ログイン 3
4 Parse error: syntax error, unexpected $end in ○○.php on line △△ | Parse error(エラーメッセージ) 2
4 PHPでcurlを使用するためには?/ 2.オプション設定 / curlでPOST送信 2
4 You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. | Twitter API(エラーメッセージ) 2
4 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 2
4 デフォルト引数 | 関数 2
4 Fatal error: Uncaught Error: Class 'Mecab_Tagger' not found in /var/www/★★.php:☆☆ | Fatal error(エラーメッセージ) 2
4 遭遇例1.存在する間違ったデータベース名を指定 2
4 リファレンス基本操作は3通り 2
5 __setメソッド | マジックメソッド(クラスとオブジェクト) 1
5 P … 子クラスインスタンス生成。親クラス内での$this 1
5 Fatal error: Uncaught RuntimeException: SplFileObject::__construct(): failed to open stream: Permission denied in | Fatal error(エラーメッセージ) 1
5 Fatal error: Uncaught Wrench\Exception\HandshakeException: No accept header receieved on handshake response in ★★★ headless-chromium-php/vendor/wrench/wrench/lib/Wrench/Protocol/Protocol.php | エラーメッセージ 1
5 対応案B.文字列処理ではなく、配列処理を実施 1
5 PHPでどうしてもエラーが画面表示されない時は、HTMLコメントアウトを外してみる | エラーメッセージ 1
5 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 1
5 PECLとは? 1
2026/7/24 5:05 更新