PHP检查多个条件是否为真

PHP检查多个条件是否为真,php,Php,我想要一份声明,检查你的黄金和铁是否都大于500,如果其中一个失败,你就不能执行 现在我还想检查哪一个失败了,这样我就可以告诉用户他/她缺少什么资源 我不知道解决我的问题的最佳方法是什么,我尝试过嵌套多个if/elseif,但结果是一个大混乱,最重要的是它根本不起作用。我更喜欢以这种方式使用开关方法: switch($type){ case 'gold': $sss = 'aaa'; break; } 或使用If函数: if($type == 'gold'){

我想要一份声明,检查你的黄金和铁是否都大于500,如果其中一个失败,你就不能执行

现在我还想检查哪一个失败了,这样我就可以告诉用户他/她缺少什么资源


我不知道解决我的问题的最佳方法是什么,我尝试过嵌套多个if/elseif,但结果是一个大混乱,最重要的是它根本不起作用。

我更喜欢以这种方式使用开关方法:

switch($type){
    case 'gold':
      $sss = 'aaa';
      break;
}
或使用If函数:

if($type == 'gold'){

}else if($type == 'iron'){

}

您不需要嵌套的if语句

bool condition1 = gold < 500;
bool condition2 = silver < 1000;
bool condition3 = diamonds < 50;

if (!condition1)
{
    echo "condition 1 failed.";
}
if (!condition2)
{
    echo "condition 2 failed.";
}
if (!condition3)
{
    echo "condition 3 failed.";
}

if (condition1 && condition2 && condition3)
{
    echo "sucess!";
}

如果最终条件太长,则始终可以定义bool failed,并在满足上述任何条件时将其设置为true。

执行以下检查:

if(($gold > 500 || $iron > 500) || ($iron> 500 || $gold > 500)){
   if($gold>500 && $iron <= 500){
       echo "iron failed";
   }else($iron >500 && $gold<= 500){
       echo "gold failed";
   }
}else{
    echo "Both failed";
}

因为您没有提供任何代码,所以很难告诉您最好做什么以及什么与您的代码相匹配。一般来说,您可以这样做:

if($amountGold >= 500 && $amountIron >= 500)
{
    //Do funny stuff -> Success
}
else
{
    if($amountGold >= 500)
    {
        echo "Not enough Iron";
    }
    else
    {
        if($amountIron >= 500)
        {
            echo "Not enough Gold";
        }
        else
        {
            echo "Not enough Gold and Iron";
        }
    }
}
试试这个:

<?php
$gold=10;
$iron=10;

$failures=array();
if ( $gold >= 500 && $iron >= 500 )
{
    /*
     * Success
     */
} else
{
    if ( $gold < 500 )
    {
        $failures[] = 'Gold';
    }

    if ( $iron < 500 )
    {
        $failures[] = 'Iron';
    }
}

echo ((count($failures)>0) ? implode (', ',$failures)." failed" : "Huzzah!").PHP_EOL;

你有任何代码开始吗?我猜如果$gold>500 | |$iron>500,你会想这样做{最初是因为你永远不会进入嵌套条件。仍然是不好的做法。你的答案非常混乱。你从来没有考虑到如果铁和金都超过500会发生什么。你对金和铁的级别检查在两个不同的顺序中是多余的。移除所有括号,你只剩下一组简单的or co条件,你应该检查。你应该先检查金和铁都超过500的成功率,然后,如果失败,检查哪些失败了。但是如果我有3个值,如果它们大于500,都需要检查,并输出哪些失败了,哪些成功了,这不会产生一个巨大的可能性列表吗lities?无法想象numorous if/elseif语句是归档的理想方式。如果有更多商品需要检查,则将其保存在一个数组中。将故障级别保存在另一个数组中。然后,您可以使用循环检查当前级别是否大于故障级别,并相应地进行处理