在php中设置多个if条件

时间:2017-10-09 02:12:34

标签: php if-statement

我目前正在制作一个自我处理表单,以显示允许用户输入数量的产品。然后我会将数量保存在

$_POST['qty_entered']

当用户按下提交按钮时。但是,我还有一个if语句,以确保用户输入有效数量

    if (is_numeric($_POST['qty_entered'][0]) && is_int($_POST['qty_entered'][0]) && $_POST['qty_entered'][0] > 0) {
    print "'<tr><td>' test '</td>'";
}
else {
    $errors = true}

然后,只有在按下提交按钮并且用户输入有效数量后,才能在同一页面上打印包含发票的表格。但是,此代码无效:

if (array_key_exists ('submit_button', $_POST)) && $errors = false{
print "Invoice";

我还在表单的开头有一个代码将$ errors设置为false,如果$ errors为true,它将打印一条错误消息。但是,它也无法正常工作,因为当我输入会触发if语句的垃圾时,它不会显示错误消息,例如“agfasgs”或“-1”

        $errors = false;
    if ($errors == true) {
print "Please enter postive whole numbers for quantity <br><br>";}

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

此行未正确插入括号。您还需要=====(这会强制执行严格检查)您当前分配变量的内容。你需要检查一下。

===运算符应该比较确切的内容相等,而==运算符会比较语义相等

if (array_key_exists ('submit_button', $_POST)) && $errors = false{//This should have thrown an error though(FATAL)

应该是

if (array_key_exists ('submit_button', $_POST) && $errors == false){

另外,仅供参考,不应该这一行

if (is_numeric($_POST['qty_entered'][0]) && is_int($_POST['qty_entered'][0]) && $_POST['qty_entered'][0] > 0) {

是这样的:?

if (is_numeric($_POST['qty_entered']) && is_int($_POST['qty_entered']) && $_POST['qty_entered'] > 0) {//access the post data properly

答案 1 :(得分:0)

php if (array_key_exists ('submit_button', $_POST)) && $errors = false{ print "Invoice";

无效PHP:您的问题是错误的,并且您将false分配给$errors(您希望==,而不是=

if (array_key_exists('submit_button', $_POST) && $errors == false) {