[PHP-users 4294] Re: PHP4.1.0 でセッション変数をunset した場合
Toshiyuki Kajii
php-users@php.gr.jp
Fri, 14 Dec 2001 17:34:06 +0900
梶井です。
* Fri, 14 Dec 2001 14:41:23 +0900
* "Eita Morikawa" <chanoma@parknet.co.jp> wrote:
>実験していただいたcase2と、case2から $_SESSION['a'] = &$a; の一行を
>削除したソース (case5とします)でregister_globalsをOnにして試したところ
>
>case2 → key1
>case5 → key2
>
>となりました。ただし、スクリプトの先頭でsession_start()をしており、リロー
>ドするとcase5も key1となります。(リロードの前後でsession_idが同一であるこ
>とは確認)
確認しました。不思議です。
というか、register_globalsがOffの状態で
$a = array("key1" => "value1");
session_register("a");
unset($a);
$a = array_merge($a, array("key2" => "value2"));
これを試したところ、key2が入ります...
Offなのになぜ?
もし、session_register('a')が行われて宣言されたのに、$_SESSION['a']への
代入が最終的にされなかった場合は自動的に$aを代入するとかやっているので
しょうか。もしそうだとすれば、一応、case5についても説明可能ですが...
しかし、そんな仕様はイヤ。
*---------------------------------------------------*
Toshiyuki Kajii 梶井 俊幸
e-mail: mikoto@camino.nissan.ne.jp
*---------------------------------------------------*