2011-12-27 3 views
0

isset ($ _ SESSION)의 의미는 무엇입니까? 세션 변수에 관한이 PHP 표현은 무엇을 의미합니까?

내가 스크립트 freichat 채팅 페이스 북의 스타일의 define.php에 다음 코드를 발견 : 나는 다음과 같은 코드 snippet-

if (!isset($_SESSION)) { 

// php code 

} 

편집을 발견

if (!isset($_SESSION)) { 
      $this->frm_id = $_SESSION[$this->uid . 'usr_ses_id']; 
      $this->frm_name = $_SESSION[$this->uid . 'usr_name']; 
     } 

$ _SESSION가 아니었다면 이전에 설정 한 두 세션 변수를 다른 변수에 어떻게 할당 할 수 있습니까?

+0

분명한 설명은 $ _SESSION이 존재하지 않는지 확인하는 것입니다. PHP 설명서에서'isset'을 찾아 보면 쉽게 찾을 수 있습니다. 당신이 이해하는 데 어려움이 무엇인지 명확히하지 않는 한, 나는 이것이 진짜 질문이 아니라고 주장 할 것입니다. – Gordon

+0

나는 isset의 의미를 안다. isset ($ _ SESSION [ 'somename'])은 나에게 아주 명확합니다.하지만 isset ($ SERVER)의 의미는 무엇입니까? 나는 그물에서 답을 찾지 못했다. 사이트 전체에 단일 세션 변수가 존재하는지 여부를 확인하려고합니까? 그래도 나는 그 일을 분명하게 해주는 답장에 의견을 추가 할 것이다. –

+0

'isset ($ _ SESSION)'은 슈퍼 글로벌'$ _SESSION'이 존재 하는지를 검사합니다. 세션이 아직 시작되지 않았을 때 그렇지 않습니다. – Gordon

답변

1

요약 :

주의 사항 슈퍼 글로벌 배열 $_SESSION에 새 키를 추가합니다. 이것은 session_start() 기능을 사용하여 세션이 시작되었는지 여부에 관계없이 적용됩니다.

귀하의 if (!isset($_SESSION))은 아직 세션이없는 경우 true로 평가됩니다. 그런 다음 if 블록에서 코드를 실행합니다. 그러나이 코드는 작동하지 않습니다.당신이 run this snippet

<?php 
var_dump($_SESSION);    // undefined notice + NULL 
var_dump(isset($_SESSION));   // FALSE 
if (!isset($_SESSION)) {   // !FALSE is TRUE 
    $foo = $_SESSION['usr_ses_id']; // undefined notice 
} 
var_dump($foo);      // NULL 
var_dump($_SESSION);    // still undefined undefined + NULL 

당신이 출력하는 것을 볼 경우 : 내가 뭔가를 놓친 거지하지 않는

Notice: Undefined variable: _SESSION in /code/Kx2RMF on line 2 
NULL 
bool(false) 
Notice: Undefined variable: _SESSION in /code/Kx2RMF on line 5 
NULL 
Notice: Undefined variable: _SESSION in /code/Kx2RMF on line 8 
NULL 

그래서, 그 채팅 스크립트의 코드가 이해되지 않는다라고 말하고 싶지만.

+1

'채팅 스크립트의 코드가 의미가 없다고 생각합니다.' - 그게 나를 혼란스럽게 만든다. 스크립트에서 코드 스 니펫이 필요하다는 것을 이해할 수 없습니다. 좋아. 나는 그들에게 물어볼 것이다. 그리고 대답을 얻으려면, 여기에 그것을 나눌 것이다. –

2

세션 ($_SESSION이 배열 인 경우 PHP의 기본 제공 변수)이 설정되지 않은 경우 (!으로 지정됨) 의미합니다. 기본적으로 활성 세션 변수/배열이 없는지 확인하고, 해당 작업을 수행하거나 PHP 코드를 실행합니다. 그것은 검사 것

+0

내 편집을 참조하십시오 –

+0

@IstiaqueAhmed : 고든은 위에 자신의 의견에 대답했습니다 :) – Sarfraz

+0

뭐라고 대답 했습니까? 나는 '편집'을 추가했다. –

0

:

if (!isset($_SESSION['key name'])) { ... } 

추가 정보 문서를 참조하십시오 : 올바른 방법은 일반적으로 특정 세션에 대해 같은 변수 뭔가를 확인하는 것입니다

있지만 어떤 세션 변수가 있는지 알아보기 설정되었습니다. PHP에서 $_SESSION은 값 배열이므로 [] 연산자를 지정하지 않으면 $_SESSION이 설정되었는지 확인합니다.

관련 문제