$_SESSION
(セッション変数)は、定義済み変数のひとつで、ページ遷移後やリロード後も、値を保持し続けることができる変数。ショッピングカートのように、複数ページで値を保持しておきたい場合などに用いる。
使い方
セット
<?php
session_start(); // セッションを開始
$_SESSION[キーA] = 値; // セッション変数をセット
$_SESSION[キーB] = array( 値A, 値B, 値C ); // 配列をセットすることも可能
?>
session_start(); // セッションを開始
$_SESSION[キーA] = 値; // セッション変数をセット
$_SESSION[キーB] = array( 値A, 値B, 値C ); // 配列をセットすることも可能
?>
呼び出し
<?php
session_start(); // セッションを再開
$_SESSION[キーA]; // セッション変数を呼び出す
$_SESSION[キーB][0]; // セッション変数にセットした配列の1つ目の値を呼び出す
$_SESSION[キーB][1]; // セッション変数にセットした配列の2つ目の値を呼び出す
$_SESSION[キーB][2]; // セッション変数にセットした配列の3つ目の値を呼び出す
?>
session_start(); // セッションを再開
$_SESSION[キーA]; // セッション変数を呼び出す
$_SESSION[キーB][0]; // セッション変数にセットした配列の1つ目の値を呼び出す
$_SESSION[キーB][1]; // セッション変数にセットした配列の2つ目の値を呼び出す
$_SESSION[キーB][2]; // セッション変数にセットした配列の3つ目の値を呼び出す
?>
$_SESSION
は、スーパーグローバル変数で、プログラム全体の、どのスコープでも呼び出せる。関数の内部で呼び出す場合、グローバル変数は、グローバル宣言するが、スーパーグローバル変数は、グローバル宣言すら必要ない。
サンプル
セッション変数をセットし、呼び出すサンプル。
セット
<?php
session_start();
$_SESSION[sessionSampleA] = 'サンプル';
$_SESSION[sessionSampleB] = array( '値A', '値B', '値C' );
?>
session_start();
$_SESSION[sessionSampleA] = 'サンプル';
$_SESSION[sessionSampleB] = array( '値A', '値B', '値C' );
?>
呼び出し
<?php
session_start();
echo '<p>$_SESSION[sessionSampleA]: ' . "{$_SESSION[sessionSampleA]}</p>";
echo '<p>$_SESSION[sessionSampleB][0]: ' . "{$_SESSION[sessionSampleB][0]}</p>";
echo '<p>$_SESSION[sessionSampleB][1]: ' . "{$_SESSION[sessionSampleB][1]}</p>";
echo '<p>$_SESSION[sessionSampleB][2]: ' . "{$_SESSION[sessionSampleB][2]}</p>";
?>
session_start();
echo '<p>$_SESSION[sessionSampleA]: ' . "{$_SESSION[sessionSampleA]}</p>";
echo '<p>$_SESSION[sessionSampleB][0]: ' . "{$_SESSION[sessionSampleB][0]}</p>";
echo '<p>$_SESSION[sessionSampleB][1]: ' . "{$_SESSION[sessionSampleB][1]}</p>";
echo '<p>$_SESSION[sessionSampleB][2]: ' . "{$_SESSION[sessionSampleB][2]}</p>";
?>
↓↓↓出力結果↓↓↓
$_SESSION[sessionSampleA]: サンプル
$_SESSION[sessionSampleB][0]: 値A
$_SESSION[sessionSampleB][1]: 値B
$_SESSION[sessionSampleB][2]: 値C
$_SESSION[sessionSampleB][0]: 値A
$_SESSION[sessionSampleB][1]: 値B
$_SESSION[sessionSampleB][2]: 値C