PHP将2个表单变量合二为一

时间:2018-11-28 21:23:26

标签: php

我需要将两个变量合并为一个变量。每个变量都有两组条件。我似乎无法正确理解语法。我正在尝试使用||为OR,但出现语法错误。

$JobType = ($RepairType==17) && isset($_POST['Tankless']) && ($_POST['Tankless'] !=1 ) ? 63 : $RepairType;
$JobType = ($RepairType==17) && isset($_POST['GasWaterHeater']) && ($_POST['GasWaterHeater'] !=1 ) ? 60 : $RepairType;

我尝试过:

$JobType = ($RepairType==17) && isset($_POST['Tankless']) && ($_POST['Tankless'] !=1 ) ? 63 || ($RepairType==17) && isset($_POST['GasWaterHeater']) && ($_POST['GasWaterHeater'] !=1 ) ? 60 : $RepairType;

这也是将||之间的条件“包装”在一起的方法。也没有运气:

$JobType = (($RepairType==17) && isset($_POST['Tankless']) && ($_POST['Tankless'] !=1 ) ? 63) || (($RepairType==17) && isset($_POST['GasWaterHeater']) && ($_POST['GasWaterHeater'] !=1 ) ? 60) : $RepairType;

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

可能您正在寻找:

$JobType = ($RepairType==17) ? (
    (isset($_POST['Tankless']) && ($_POST['Tankless'] !=1)) ? 63 : (
        (isset($_POST['GasWaterHeater']) && ($_POST['GasWaterHeater'] !=1)) ? 60 : $RepairType
    )
) : $RepairType;

为简化阅读,您可以这样写:

$tankless = isset($_POST['Tankless']) && ($_POST['Tankless'] !=1 );
$gasheater = isset($_POST['GasWaterHeater']) && ($_POST['GasWaterHeater'] !=1 );

$JobType = ($RepairType==17) ? ($tankless ? 63 : ($gasheater ? 60 : $RepairType)) : $RepairType;