Php 即使满足条件,也要执行elseif行

Php 即使满足条件,也要执行elseif行,php,html,Php,Html,PHP <?php if (isset($_POST['calculate'])) { $seller= $_POST['seller']; $buyer= $_POST['buyer']; $amount= $_POST['amount']; $rate= $_POST['tax_rate']; if (empty(($seller && $buyer) &&

PHP

<?php

if (isset($_POST['calculate'])) {
        $seller= $_POST['seller'];
        $buyer= $_POST['buyer'];
        $amount= $_POST['amount'];
        $rate= $_POST['tax_rate'];



            if (empty(($seller && $buyer) && ($amount && $rate) )){
                echo $warning= "Please full out the fields properly";
            }elseif(!is_int($amount && $rate)){
                echo $warning ="please input numbers on Tax Rate & Amount";


            }
    }
}

是int($amount&&$rate)
没有测试
$amount
$rate
是否都是整数。它正在测试表达式
$amount&&$rate
的值是否为整数
&
是一个布尔值
,如果两个操作数都是真的,则返回
true
,否则返回
false
。由于结果是布尔值而不是整数,
is_int()
将始终为此返回
false

另一个问题是表单输入总是字符串,而不是数字。如果要测试字符串是否与数字相似,必须使用
is_numeric
,而不是
is_int
。因此,代码应该是:

elseif (!is_numeric($amount) || !is_numeric($rate))
测试每个变量

类似地,如果要测试多个变量是否为空,请使用

if (empty($seller) || empty($buyer) || empty($amount) || empty($rate)) {
    echo $warning = "Please fill out all the fields properly";
}

is_int($amount&&$rate)
没有测试
$amount
$rate
是否都是整数。它正在测试表达式
$amount&&$rate
的值是否为整数
&
是一个布尔值
,如果两个操作数都是真的,则返回
true
,否则返回
false
。由于结果是布尔值而不是整数,
is_int()
将始终为此返回
false

另一个问题是表单输入总是字符串,而不是数字。如果要测试字符串是否与数字相似,必须使用
is_numeric
,而不是
is_int
。因此,代码应该是:

elseif (!is_numeric($amount) || !is_numeric($rate))
测试每个变量

类似地,如果要测试多个变量是否为空,请使用

if (empty($seller) || empty($buyer) || empty($amount) || empty($rate)) {
    echo $warning = "Please fill out all the fields properly";
}

试试
}其他(!is_int($amount)和&!is_int($rate)){
如果(空(($seller&$buyer)和($amount&$rate)){
空($seller&$buyer)和($amount&$rate))
没有任何意义。您正在测试布尔真/假是否为空…这意味着如果
&&
所有值都为真,您将得到一个布尔真,它不是空的。
$amount&&&$rate
永远不能是整数。
&&
总是返回一个布尔值。嘿,我真的希望检查用户是否没有提交form empty?我想我在那里的感觉不好?试试
}其他(!is_int($amount)&!is_int($rate)){
还有,如果(empty($seller&$buyer)&($amount&$rate)){empty($seller&$buyer)&($amount&$rate))空($seller&($amount&&$rate))你对这行的期望是什么没有任何意义。您正在测试布尔真/假是否为空…这意味着如果
&&
所有值都为真,您将得到一个布尔真,它不是空的。
$amount&&&$rate
永远不能是整数。
&&
总是返回一个布尔值。嘿,我真的希望检查用户是否没有提交form empty?我想我在那里的感觉不好?但即使我试着在金额和税上输入数字,为什么税行和金额应该是数字?你输入的数字是什么?随机数字取1或任何东西确保你没有输入小数。1应该起作用,1.2不会起作用,因为这是一个浮点数,而不是整数。使用
是数字e> ,而不是
是int
。但即使我尝试输入金额和税的数字,为什么税和税的行应该是数字?你输入的数字是什么?随机数取1或任何东西确保你没有输入小数。1应该有效,1.2不会,因为这是一个浮点数,而不是整数。使用
是数字
,而不是
is_int