2016-10-09 8 views
13

PHP 5.6からPHP 7にアップグレードしていて、奇妙な問題が発生しました。

<?php 
    session_start(); 
    $_SESSION['test'] = true; 
    $var = $_SESSION; 
    session_unset(); 
    print_r($var); 

PHP 5.6 出力:

Array 
(
    [test] => 1 
) 

PHP 7 出力:

Array 
(
) 

私は$_SESSIONが参照によって渡されるため、これが起こっていると仮定しますが、なぜですか?

+1

MCVE:https://3v4l.org/Lg0IE – Pete

+3

: '$ var =&$ _ SESSION;'に変更すると、すべてのPHPバージョンで同じ動作が得られます。私はあなたが以前のPHPバージョンで '書き込み時にコピー'に会ったと思う。 https://3v4l.org/vv9PU –

+0

私は空の配列を取得しますが、 '$ var'に格納された値を保持する必要があります –

答えて

3

結論として、バグはPHP 7.0.13で始まりました。質問のコメントの詳細。

関連する問題