[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
*---------------------------------------------------*