2012-06-20 75 views
1

當有兩個不同名稱的提交按鈕時,是否可以添加「OR」運算符到php isset提交表單代碼? 例如:PHP isset提交表單或運營商

if (!isset($_POST['submitRequest'] || $_POST['submit'])) 

上面的代碼提示並出錯。請指教。

+0

當兩者都設置時,你是否想要一個'TRUE',兩者都沒有設置或者還有其他什麼?你顯示代碼的方式令人困惑。 –

+0

我想要的東西之一是真正的submitRequest或提交 –

+1

請不要編輯您的問題,以便原來的問題丟失。對於稍後發現此問題的用戶而言,這會讓用戶感到困惑 - 答案不會與新問題相匹配 – cypherabe

回答

3

嘗試:

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){ 
    //do something 
} 
0

不,這是不可能的。你需要在它自己的isset函數中使用每個變量,所以你不能將它們組合起來。

0

可以在多變量使用isset()

if(isset($_POST['submitRequest']) || isset($_POST['submit'])) { 
    // One of them was pushed 
} 

傳遞多個參數來isset()時要小心。 As the manual documents

如果提供了多個參數,則只有在設置了所有參數後,isset()纔會返回TRUE。評估從左到右,遇到未設置的變量就停止。

因此isset($_POST['submitRequest'], $_POST['submit'])將相當於isset($_POST['submitRequest']) && isset($_POST['submit'])。但是,如果您想檢查!isset($_POST['submitRequest']) || !isset($_POST['submit']),那麼第二句可能很有用。由於當傳遞多個參數時,isset()將爲第一個未設置的參數返回false,您可以使用!isset($_POST['submitRequest'], $_POST['submit'])

+0

什麼是downvote? –

+0

@SalmanA正要問同樣的問題:) –

0

我知道我誤解了原文。

if(isset($_POST['submitRequest'])||isset($_POST['submit'])){ 
    // you can do something here 
} 

原始(不正確)

您可以使用此:

if(!isset($_POST['submitRequest'], $_POST['submit'])){ 
    die("Fail"); 
} 

如果有多個參數提供,該功能會檢查所有的人。只有在設置了所有參數的情況下,這將返回TRUE。

參考:http://php.net/manual/en/function.isset.php

+0

如果其中任何一個變量未設置,它將會迴應失敗。如果BOTH變量未設置,它應該回顯失敗。 –

+0

如果設置了其中一個參數,我希望它爲真 –

0

那不是如何使用或操作。你必須把它放在兩個isset調用之間。

if (! isset($_POST['submitRequest']) || isset($_POST['submit'])) { } 

你總是要仔細看看語法。請記住,如果左條件正確的條件爲真,則使用或運算符將整個條件評估爲真。因此,您總是需要在兩種情況下使用or操作符。

另外,如果你想用和運算符來完成這項工作,你可以使用一個isset調用。

if (isset($_POST['username'], $_POST['password'])) { } 
+0

如果設置了* both *,則第二行代碼僅返回true。這將對應於'和'而不是'或'。 –

+0

是的,閱讀我上面提出的評論。這正是我所說的。 –

+0

@TinovanderLaan道歉。出於某種原因,我讀了'或'而不是'和'。 –

0

您需要分別調用各自變量的isset函數。根據您遵循的慣例,您可以選擇使用兩種語法中的任何一種。

if(isset($_POST['submitRequest']) || isset($_POST['submit'])){ 
    //do something 
} 

if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){ 
    //do something 
} 
0

闡述了一下:

isset()empty()和其他幾個都是不是功能,而是語言構造。因此,根據他們看起來像功能的方式,他們不會以所有可能的方式工作。

這裏的重要部分是:他們只檢查變量,他們不能也不會評估表達式的結果。 ||的使用使$_POST['submitRequest'] || $_POST['submit']成爲一個表達式。結果只是暫時計算的,並不存儲在可以設置或空的定義變量中。