session_register

(PHP 4, PHP 5)

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

説明

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

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

注意

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() を用いてその変数をグローバルとするか、下記のようにsession配列を 使用してください。

注意

$HTTP_SESSION_VARS (または $_SESSION )を 使用する場合、 session_register() , session_is_registered() , session_unregister() を使用しないでください。

この関数は全ての変数のセッションへの登録に成功した場合に TRUE を 返します。

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

配列$HTTP_SESSION_VARSまたは$_SESSION (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." ;
?>

注意: セッションにリソース変数を登録することは現在できません。例えば、 データベースへの接続を生成し、接続IDをセッション変数として登録し、 セッションが回復された時点で、接続が有効であることを期待すること はできません。リソースを返すPHP関数は、その関数定義に resource 型の返り値を有することが示されている。 リソースを返す関数のリストは、付録 resource types で見ることができま す。

$_SESSION (またはPHP 4.0.6以前は$HTTP_SESSION_VARS)が使用されて いる場合、$_SESSIONに変数を代入してください。 すなわち、$_SESSION['var'] = 'ABC';

session_is_registered() , session_unregister() , $_SESSION も参照してください。