2016-10-09 1 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

모든 PHP 버전에서 동일한 동작을 얻으려면'$ var = & $ _ SESSION;'로 변경하십시오. 나는 당신이 이전 PHP 버전으로 'copy on write'를 만난 것으로 의심된다. https://3v4l.org/vv9PU –

+0

만약 내가 빈 배열을 가져 오지 만'$ var'에 저장된 값을 보존해야합니다. –

답변

3

결론적으로이 버그는 이제 PHP 7.0.13으로 시작하는 버그로 해결되었습니다. 질문에 대한 자세한 설명.

관련 문제