[php] PHP에서 session_unset ()과 session_destroy ()의 차이점은 무엇입니까?

로부터 php.net의 문서 :

session_destroy — 세션에 등록 된 모든 데이터를 삭제합니다.

session_unset — 모든 세션 변수 해제

세 부분으로 구성된 질문은 다음과 같습니다.

두 기능은 매우 비슷해 보입니다.
둘의 차이점은 무엇입니까?

둘 다 세션에 등록 된 모든 변수를 삭제하는 것 같습니다. 그들 중 어떤 것이 실제로 세션 자체를 파괴합니까? 그렇지 않은 경우이를 어떻게 수행합니까 (세션 자체를 파괴).

두 기능 중 어느 것도 클라이언트에서 세션 쿠키를 삭제하지 않는 것이 맞습니까?



답변

session_unset$_SESSION변수를 지 웁니다 . 다음을 수행하는 것과 동일합니다.

$_SESSION = array();

따라서 이것은 로컬 $_SESSION변수 인스턴스 에만 영향을 미치고 세션 저장소의 세션 데이터에는 영향을 미치지 않습니다.

이와 반대로 session_destroy세션 저장소에 저장된 세션 데이터 (예 : 파일 시스템의 세션 파일)를 삭제합니다.

다른 모든 것은 변경되지 않습니다.


답변

session_destroy(); 전체 세션을 삭제합니다.

session_unset();세션에서 변수 만 삭제합니다. 세션이 여전히 존재합니다. 데이터 만 잘립니다.


답변

session_unset();

모든 세션 변수의 모든 데이터를 지우십시오.

session_destroy();

모든 세션을 제거하십시오.


:

session_start();
session_destroy();
$a = "1234";
$_SESSION[a] = $a;

$_SESSION[a]입니다 NULL.

session_start();
session_unset();
$a = "1234";
$_SESSION[a] = $a;

$_SESSION[a]입니다 1234.

따라서 다음을 사용합니다.

session_start();
session_destroy();
session_start();
$a = "1234";
$_SESSION[a] = $a;


답변

session_unset()$_SESSION에서와 같이 변수 를 지우지 array()만 세션 파일은 건드리지 않습니다. 그러나 스크립트가 끝날 때; 의 상태가 $_SESSION파일에 기록됩니다. 그런 다음 파일을 지우지 만 삭제하지는 않습니다. 사용할 때 (사용 후 사용 )을 session_destroy()터치하지 않고 세션 파일을 삭제하므로 스크립트가 종료되면 .$_SESSIONvar_dump($_SESSION)session_destroy()$_SESSION


답변

session_destroy()페이지 이동 후 세션을
session_unset()삭제하고 코드 실행시 세션을 삭제합니다.


답변

session_unset($_SESSION['session_name'])특정 또는 개별 / 단일 세션 이름 만 설정 해제 할 것이라고 생각 하여 사용 하려고했습니다. 그러나 사용 session_unset($_SESSION['session_name'])하면 모든 세션 이름이 설정 해제됩니다. 사용할 올바른 코드 unset($_SESSION['session_name'])는 단일 세션 이름을 설정 해제하려는 경우 에만 가능합니다.


답변

session_start (); # 브라우저 실시간 메모리에 가상 어레이 (연관)를 생성합니다.

두 항목 추가

> $_SESSION['me'] = "Yadab";
> $_SESSION['you'] = "Avi";
>
> print_r($_SESSION); #will give, array( "me"=>"Yadab", "you"=>"Avi" )

test1

> unset($_SESSION['me']); #only 'me' variable is removed fully (index & value) 
> print_r($_SESSION); #now the array is Array("you"=>"Avi")

test2

> session_destroy(); #will unset the values of all session variables, but indexes exists 
> print_r($_SESSION); #Output, Array("you"=>undefined)
> #but some browser can store the value in cookies

test3

> session_unset(); #will unset all the main variables not only the values 
> print_r($_SESSION); #that means session array is now empty, like Array()

다른 사람을 주석 처리하여 개별적으로 블록 1, 2 또는 3 테스트