セッション関数
PHP Manual

session_register

(PHP 4, PHP 5)

session_register現在のセッションに1つ以上の変数を登録する

説明

bool session_register ( mixed $name [, mixed $... ] )

session_register() の引数の数は可変であり、 各引数は変数名を保持する文字列または変数名からなる配列 とすることが可能です。 各変数名が処理される毎に、session_register() は、その変数名のグローバル変数を現在のセッションに登録します。

配列 $_SESSION または $HTTP_SESSION_VARS (PHP < 4.1.0) の適当なメンバに設定をするだけでもセッション変数を作成することが可能です。

<?php
// session_register() の使用は推奨されません。
$barney "A big purple dinosaur.";
session_register("barney");

// PHP 4.1.0以降では$_SESSIONの使用が推奨されます。
$_SESSION["zim"] = "An invader from another planet.";

// 古い手法としては $HTTP_SESSION_VARS があります。
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants.";
?>

この関数をコールする前に session_start() をコールしていない場合、暗黙のうちに引数を付けずに session_start() がコールされます。 $_SESSION を使う場合はこの動作とは違い、 使用前に必ず session_start() をコールする必要があります。

パラメータ

name

変数名を含む文字列、 あるいは変数名や配列を含む配列。

...

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

注意

警告

register_globals を考慮することなくスクリプトを書きたい場合には、 $_SESSION 配列を代わりに使用する必要があります。 $_SESSION のエントリは自動的に登録されます。 スクリプトで session_register() を使用している場合には、それは register_globals を不可としている環境下では動作しません。

注意: register_globals: 重要な注意
PHP 4.2.0 以降、PHP ディレクティブ register_globals のデフォルト値は off となっています。 また、このディレクティブは PHP 6.0.0 で完全に削除される予定です。 PHP コミュニティは、ユーザがこのディレクティブの設定に依存せず、 superglobals のような他の手段を使用することを推奨します。

警告

この関数は、global変数を登録します。 セッション変数を関数の内部で登録したい場合、 global キーワードあるいは $GLOBALS[] 配列を用いてその変数をグローバルとするか、下記のように session 配列を使用してください。

警告

$_SESSION (あるいは $HTTP_SESSION_VARS) を使用する場合は session_register()session_is_registered() および session_unregister() を使用しないでください。

注意: セッションにリソース変数を登録することは現在できません。例えば、 データベースへの接続を生成し、接続IDをセッション変数として登録し、 セッションが回復された時点で、接続が有効であることを期待することはできません。 リソースを返すPHP関数は、その関数定義に resource型の返り値を有することが示されている。 リソースを返す関数のリストは、付録 リソース型の一覧 で見ることができます。
$_SESSION (あるいは PHP 4.0.6 以前なら $HTTP_SESSION_VARS) を使用する場合は、値を $_SESSION に代入します。 たとえば $_SESSION['var'] = 'ABC'; などのようにします。

参考


セッション関数
PHP Manual