當有兩個不同名稱的提交按鈕時,是否可以添加「OR」運算符到php isset提交表單代碼? 例如:PHP isset提交表單或運營商
if (!isset($_POST['submitRequest'] || $_POST['submit']))
上面的代碼提示並出錯。請指教。
當有兩個不同名稱的提交按鈕時,是否可以添加「OR」運算符到php isset提交表單代碼? 例如:PHP isset提交表單或運營商
if (!isset($_POST['submitRequest'] || $_POST['submit']))
上面的代碼提示並出錯。請指教。
嘗試:
if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
//do something
}
不,這是不可能的。你需要在它自己的isset函數中使用每個變量,所以你不能將它們組合起來。
可以在多變量使用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'])
。
什麼是downvote? –
@SalmanA正要問同樣的問題:) –
我知道我誤解了原文。
if(isset($_POST['submitRequest'])||isset($_POST['submit'])){
// you can do something here
}
原始(不正確)
您可以使用此:
if(!isset($_POST['submitRequest'], $_POST['submit'])){
die("Fail");
}
如果有多個參數提供,該功能會檢查所有的人。只有在設置了所有參數的情況下,這將返回TRUE。
如果其中任何一個變量未設置,它將會迴應失敗。如果BOTH變量未設置,它應該回顯失敗。 –
如果設置了其中一個參數,我希望它爲真 –
那不是如何使用或操作。你必須把它放在兩個isset調用之間。
if (! isset($_POST['submitRequest']) || isset($_POST['submit'])) { }
你總是要仔細看看語法。請記住,如果左條件或正確的條件爲真,則使用或運算符將整個條件評估爲真。因此,您總是需要在兩種情況下使用or操作符。
另外,如果你想用和運算符來完成這項工作,你可以使用一個isset調用。
if (isset($_POST['username'], $_POST['password'])) { }
如果設置了* both *,則第二行代碼僅返回true。這將對應於'和'而不是'或'。 –
是的,閱讀我上面提出的評論。這正是我所說的。 –
@TinovanderLaan道歉。出於某種原因,我讀了'或'而不是'和'。 –
您需要分別調用各自變量的isset函數。根據您遵循的慣例,您可以選擇使用兩種語法中的任何一種。
if(isset($_POST['submitRequest']) || isset($_POST['submit'])){
//do something
}
if(isset($_POST['submitRequest']) OR isset($_POST['submit'])){
//do something
}
闡述了一下:
isset()
,empty()
和其他幾個都是不是功能,而是語言構造。因此,根據他們看起來像功能的方式,他們不會以所有可能的方式工作。
這裏的重要部分是:他們只檢查變量,他們不能也不會評估表達式的結果。 ||
的使用使$_POST['submitRequest'] || $_POST['submit']
成爲一個表達式。結果只是暫時計算的,並不存儲在可以設置或空的定義變量中。
當兩者都設置時,你是否想要一個'TRUE',兩者都沒有設置或者還有其他什麼?你顯示代碼的方式令人困惑。 –
我想要的東西之一是真正的submitRequest或提交 –
請不要編輯您的問題,以便原來的問題丟失。對於稍後發現此問題的用戶而言,這會讓用戶感到困惑 - 答案不會與新問題相匹配 – cypherabe