我正在尝试检查是否存在$ _POST,如果存在,则将其打印在另一个字符串中,否则,根本不打印。
类似的东西:
$fromPerson = '+from%3A'.$_POST['fromPerson'];
function fromPerson() {
if !($_POST['fromPerson']) {
print ''
} else {
print $fromPerson
};
}
$newString = fromPerson();
任何帮助都会很棒!
答案 0 :(得分:146)
if( isset($_POST['fromPerson']) )
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
答案 1 :(得分:53)
//Note: This resolves as true even if all $_POST values are empty strings
if (!empty($_POST))
{
// handle post data
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
if (isset($_POST['fromPerson']) )
{
$fromPerson = '+from%3A'.$_POST['fromPerson'];
echo $fromPerson;
}
答案 2 :(得分:31)
每个人都说使用isset() - 这可能适合你。
但是,了解
之间的区别非常重要 $_POST['x'] = NULL;
和$_POST['x'] = '';
isset($_POST['x'])
将在第一个示例中返回false
,但会在第二个示例上返回true
,即使您尝试打印其中任何一个,两者都会返回空值。< / p>
如果您的$_POST
来自用户输入的字段/表单并且留空,我相信(虽然我不是100%肯定)该值将是“”但不是NULL。< / p>
即使这个假设不正确(如果我错了,请有人纠正我!)以上对于将来使用仍然有用。
答案 3 :(得分:28)
很惊讶它没有被提及
if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['fromPerson'])){
答案 4 :(得分:19)
isset($_POST['fromPerson'])
答案 5 :(得分:9)
isset
是不合适的。根据PHP文档:http://php.net/manual/en/function.array-key-exists.php
(参见示例#2 array_key_exists()vs isset())
方法array_key_exists
用于检查数组中的密钥存在。
因此,问题中的代码可以更改如下:
function fromPerson() {
if (array_key_exists('fromPerson', $_POST) == FALSE) {
return '';
} else {
return '+from%3A'.$_POST['fromPerson'];
};
}
$newString = fromPerson();
答案 6 :(得分:6)
实际上不鼓励使用所有方法,这是Netbeans 7.4中的警告,直接访问超全局变量肯定是一个好习惯,使用 filter 而不是
$fromPerson = filter_input(INPUT_POST, 'fromPerson', FILTER_DEFAULT);
if($fromPerson === NULL) { /*$fromPerson is not present*/ }
else{ /*present*/ }
var_dump($fromPerson);exit(0);
答案 7 :(得分:4)
尝试
if (isset($_POST['fromPerson']) && $_POST['fromPerson'] != "") {
echo "Cool";
}
答案 8 :(得分:3)
试试isset
($_POST['fromPerson'])
?
答案 9 :(得分:3)
if (is_array($_POST) && array_key_exists('fromPerson', $_POST)) {
echo 'blah' . $_POST['fromPerson'];
}
答案 10 :(得分:2)
if( isset($_POST['fromPerson']) )
是对的。
你可以使用一个函数并返回,然后更好地指导echo。
答案 11 :(得分:1)
我想检查它是否被设置以及它是否在三元运算符中为空。
// POST variable check
$userID = (isset( $_POST['userID'] ) && !empty( $_POST['userID'] )) ? $_POST['userID'] : null;
$line = (isset( $_POST['line'] ) && !empty( $_POST['line'] )) ? $_POST['line'] : null;
$message = (isset( $_POST['message'] ) && !empty( $_POST['message'] )) ? $_POST['message'] : null;
$source = (isset( $_POST['source'] ) && !empty( $_POST['source'] )) ? $_POST['source'] : null;
$version = (isset( $_POST['version'] ) && !empty( $_POST['version'] )) ? $_POST['version'] : null;
$release = (isset( $_POST['release'] ) && !empty( $_POST['release'] )) ? $_POST['release'] : null;
答案 12 :(得分:1)
即使该主题已经存在多年并且对我来说在Google中排名很高,我也想添加我的答案。
我最好的方法是尝试:
if(sizeof($_POST) !== 0){
// Code...
}
由于$_POST
是一个数组,如果脚本加载并且$_POST
变量中没有数据,则它将具有0的数组长度。可在IF语句中使用。
您可能还想知道这是否引发“未定义索引”错误,好像我们正在检查是否设置了$_POST
…实际上$_POST
始终存在,因此“未定义索引”仅当您尝试搜索不存在的$ _POST数组值时,才会出现错误。
$_POST
本身总是存在,要么为空,要么为数组值。
$_POST['value']
可能不存在,从而引发“未定义索引”错误。