2013-10-20 2 views
0

나는이 노력하고 있습니다 XXX \ xxx.php 라인 :PHP : - 공지 사항 : 정의되지 않은 인덱스 : C를 입력 : XXX 32

if(! isset($_SESSION['type']) and !$_SESSION['type'] == "0") 
{ 
    echo "something"; 
} 

내가 밖으로 넣어 얻을 것이다 :

알림 : 정의되지 않은 색인 : 32 행의 x : \ xxx \ xxx \ xxx.php 입력

어떻게 해결할 수 있습니까?

+1

'와'대신'||'를 사용해야합니다. – Joren

+0

이것은 "or"을 의미합니다. 게다가 PHP는'&&'와'and','||'및'or' 두 가지 표기법을 모두 지원합니다. – geomagas

+1

아마도 다음과 같을 것입니다 :'if (! isset ($ _ SESSION [ 'type']) && $ _SESSION [ 'type']! == "0")' –

답변

0

첫 번째 진술은 설정되어 있지 않다는 것을 말하고 있습니다. 처음에는 제외하지 마십시오 (!).

이 시도 : 존재하지 않는 배열 키에서 읽으려고하면

if( isset($_SESSION['type']) && ($_SESSION['type'] !== "0")) { 

    echo "something"; 
} 
+0

어떻습니까! == –

+0

@RonniSkansing ... 그게 너무 효과가 있었을 것입니다. 나는 원래 그에게 더 익숙한 것을주기 위해 노력하고있었습니다. – w3bMak3r

+1

== 및 === http://codepad.org/ijbTEImt –

2

PHP 경고 (통지)를 발행합니다. isset()은 경고를 발행하지 않습니다.

그러나 형식 키가 설정되지 않은 경우 if의 두 번째 절반이 실행되기 때문에 '형식'이 설정되지 않으면 코드가 작동합니다.

달성하려는 목표가 명확하지 않습니다. 아마 당신은 같은 의미 :

if (!isset($_SESSION['type']) || $_SESSION['type'] == '0') 
{ 
    echo "something"; 
} 

을하지만 이상적으로 당신이 뭔가를 할 거라고 :

if (!isset($_SESSION['type'])) 
{ 
    $_SESSION['type'] = '0'; // set default value 
} 

이제 나머지 코드는 존재 가정 할 수 있습니다. 이 후 에코, 세션 변수 유형이 설정되어있는 경우 말과 0이 아닌

if( isset($_SESSION['type']) && (!$_SESSION['type'] == "0")) { 

    echo "something"; 
} 

:

+0

+1 좋은 답변이지만 == '0'은 정말 이상합니다. –

0
(isset($_SESSION['type']) == false || $_SESSION['type'] != "0") ? 'something' : ''; 
0

나는이 답변이 좋은 방법이라고 생각합니다. 이게 너가 찾고있는거야?

+0

-1 == '0'은 "0"인지/0인지 확인하지 않습니다. 이미 존재하는 응답의 거의 cp입니다. –

+0

cp는 무엇을 의미합니까? 이 사이트를 처음 사용합니다. – user2502479

+0

죄송합니다. 복사 및 붙여 넣기를 의미합니다. –

관련 문제