-2

在我的 php 文件中,我有这样的声明:

if($_POST['married'] === true) $married = 'yup' else $married = 'nop';

但是如果我不评论它,我的 php 结果页面就会变成空的。它实际上崩溃了。我正在从不同的地方发布到这个 PHP,并且在 POST 值中我有“已婚”值。它确实是空的(不是真或假),但这与它无关。我也试过这样:

if($_POST['married'] === '') $married = 'yup' else $married = 'nop';

同样的结果。空白页。我的语法有问题吗?我看不到我的问题。请帮我。

4

9 回答 9

3

你没有if正确使用。

if($_POST['married'] == true)
{
    $married = 'yup';
}
else
{
    $married = 'nop';
}

===不能用于 POST,因为它会自动将所有内容作为字符串发布;比较===器比较数据类型和内容。

于 2013-10-11T10:32:46.463 回答
2

你忘了把分号放在'yup'后面。这将是

 if($_POST['married'] === true) $married = 'yup'; else $married = 'nop';

或者,如果您想使用 oneliner,那么:

 ($_POST['married']===true)?($married = 'yup'):($married = 'nop');
于 2013-10-11T10:33:51.130 回答
2

分号哥们!!

if($_POST['married'] === '')  $married = 'yup'; else $married = 'nop';
于 2013-10-11T10:32:58.483 回答
2

您需要在每个语句后添加一个分号:

if($_POST['married'])
    $married = 'yup';
else
    $married = 'nop';

您可能还想检查它是否首先使用isset

if(isset($_POST['married']) && $_POST['married'] === true)
    $married = 'yup';
else
    $married = 'nop';

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

您还可以使用 tenary 编写语句:

$married = isset($_POST['married']) && $_POST['married'] === true ? 'yup' : 'nop';

有关三元运算符的更多信息:http ://www.sitepoint.com/using-the-ternary-operator/

于 2013-10-11T10:34:18.867 回答
1

空运算符将帮助您:

if(!empty($_POST['married'])) {
  $married = 'yup';
}
else {
  $married = 'nop';
}
于 2013-10-11T10:33:26.747 回答
1

您错过了 if 语句中的分号,并尝试检查 $_POST 变量是否已设置

if(isset($_POST['married']) === true) 
  $married = 'yup';//Here you missed the semicolon
else 
  $married = 'nop';
于 2013-10-11T10:32:12.083 回答
1

您的页面因缺少分号而崩溃。

if()不需要分号,因为它是一个子句而不是语句。 $married = 'yup'是需要分号 (;) 终止的语句。

于 2013-10-11T10:41:46.377 回答
1

我假设show_errors = false所以它是无声轰炸?如果是这样(在开发期间),请确保打开错误报告

话虽如此,您应该始终在使用它们之前检查$_POST/$_GET值。例如

$married = isset($_POST['married']) && ((bool)$_POST['married'])
         ? 'yup'
         : 'nop';
于 2013-10-11T10:32:40.350 回答
1

后面加分号$married = 'yup'isset用来判断是否$_POST设置了值:

if(isset($_POST['married']) && $_POST['married'] == true)
    $married = 'yup';
else
    $married = 'nop';
于 2013-10-11T10:32:51.190 回答