2013-10-20 70 views
0

我想這一點:PHP: - 注意:未定義指數:輸入C: XXX XXX xxx.php上線32

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

我會得到了認沽:

注意:未定義的索引:輸入x:\ xxx \ xxx \ xxx.php在線32

我該如何解決這個問題?

+1

您必須使用'||'而不是'和' – Joren

+0

這意味着「或」。而且,php支持這兩種表示法:'&&'和'和','||'和'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()不會發出警告。

但是,如果未設置'type',則代碼保證會這樣做,因爲如果未設置類型鍵,則if的後半部分將運行。

目前尚不清楚你正在努力完成什麼。也許你的意思是這樣:

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

但最好你會做這樣的事情:

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

現在的代碼的其餘部分可以假設它的存在。

+0

+1尼斯的答案,但=='0'真的很奇怪。 –

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

我想這個答案是一個好辦法:

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

    echo "something"; 
} 

是,如果會話變量類型設置,說不等於零,則呼應。這是你想要的?

+0

-1 =='0'不檢查它是否爲「0」/ try null,0.並且幾乎是已有答案的一個cp –

+0

cp是什麼意思?這是我第一次使用這個網站。 – user2502479

+0

對不起,我的意思是它是一個複製和粘貼 –

相關問題