PHP子句优先级

时间:2019-07-09 05:18:55

标签: php

我有以下适用的逻辑

['Value']是tinyint(1)
['Text1'] varchar(200)
['Text2'] varchar(200)

if ($item['Table']['Value'] == 0) then Option 1

if ($item['Table']['Value'] && $e['Table']['Text1']) then Option 2

if ($item['Table']['Value'] && $e['Table']['Text1'] == false) then Option 3

如果[[Text2]]中有任何文本,我想再添加一个优先级最高的选项,无论['Value'] = 1还是0

我尝试在顶部加一个,但是任何比我聪明的人都建议它不能全部起作用。

if ($item['Table']['Text2'] == true) then Option 4

请说明这种逻辑的正确结构应如何。 谢谢

3 个答案:

答案 0 :(得分:0)

如果我的问题正确,那么您应在以下情况下使用else if

if ($item['Table']['Text2'] == true) then Option 4

else if ($item['Table']['Value'] == 0) then Option 1

else if ($item['Table']['Value'] && $e['Table']['Text1']) then Option 2

else if ($item['Table']['Value'] && $e['Table']['Text1'] == false) then Option 3

答案 1 :(得分:0)

您可以检查empty的情况

if (!empty($item['Table']['Text2'])) then Option 4
if ($item['Table']['Value'] == 0) then Option 1

if ($item['Table']['Value'] && $e['Table']['Text1']) then Option 2

if ($item['Table']['Value'] && $e['Table']['Text1'] == false) then Option 3

答案 2 :(得分:0)

使用if ... else...结构可以为组合创建层次结构。目前,一些测试已完成几次,可以将它们排除在外。 (恕我直言)这也使条件更清晰,更易于维护...

if ( !empty($e['Table']['Text1']) ) {
    // Option 4
}
else {
    if ($item['Table']['Value'] == 0)   {
        // Option 1
    }
    else    {
        if (!empty($e['Table']['Text1']))  {
            //Option 2
        }
        else    {
            // Option 3
        }
    }
}

正如我在对问题本身的评论中提到的那样-不知道选项2是否可以实现,因为现在是选项4。