我想知道如何檢測$ _POST是否設置。
現在,我發現它是這樣的:
if(isset($_POST['value']))
但如果值設置了我不是在尋找。基本上,任何POST都可以工作。
if(isset($_POST))
我不知道PHP如何處理這個。 Perhabs isset($ _ POST)總是返回true,因爲它是一個PHP全局?
基本上,我該怎麼做?
我想知道如何檢測$ _POST是否設置。
現在,我發現它是這樣的:
if(isset($_POST['value']))
但如果值設置了我不是在尋找。基本上,任何POST都可以工作。
if(isset($_POST))
我不知道PHP如何處理這個。 Perhabs isset($ _ POST)總是返回true,因爲它是一個PHP全局?
基本上,我該怎麼做?
與嘗試:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {}
檢查,如果你的腳本被張貼。
如果通過了其他數據,$_POST
將不會爲空,否則會。
您可以使用empty
方法來檢查它是否包含數據。
if (!empty($_POST)) {}
一個簡單的解決方案可能是隻使用
if (!empty($_POST))
不是解決錯誤的答案... – 2013-03-05 09:59:31
正如下面使用它。因爲它的super global
因此在檢查isset
和empty
時總是返回true。
<?php
if($_POST)
{
echo "yes";
}
?>
@向下選民請解釋一下我也試過空,但沒有工作...... – 2013-03-05 09:58:25
事實上,這工作得很好。所以應該'空',但它是多餘的。 – deceze 2013-03-05 10:01:03
$_POST
是一個數組。您可以檢查:
count($_POST)
如果它大於零表示發佈了一些值。
我知道這個答案已經回答了,但這裏有一個簡單的方法,我用我的一個類來計算後是否已設置(也許有人會發現它很有用):
public function isPost($key = null) {
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
return false;
}
if (!empty($key)) {
return isset($_POST[$key]);
}
return true;
}
最好的方法來檢查$ _POST
<?php
if(isset($_POST['value']) && !empty($_POST['value']))
{
return true;
}
else
{
return false;
}
小心'empty()'!一個零(「0」)的字符串被認爲是空的。此外,與'isset()'一起使用是多餘的。 – 2017-04-04 15:43:01
'$ _POST'總是伴隨一個頭請求,**將**包含值。也許你想要'$ _SERVER ['REQUEST_METHOD'] =='POST'。 – BenM 2013-03-05 09:55:15
你想知道'$ _POST'是否包含* any *數據或請求是否使用HTTP POST方法? – deceze 2013-03-05 09:57:09