嵌套if';s不在php中工作,要么什么都不做,要么就到了代码的末尾

嵌套if';s不在php中工作,要么什么都不做,要么就到了代码的末尾,php,nested,Php,Nested,我已经对这段代码感到沮丧好几个小时了,我只能低头寻求帮助。我试图让这些嵌套的if工作,但它要么什么也不返回,我也没有收到错误,要么它将在编码结束之前停止。这些输入都来自组单选按钮,其顺序的原因是,一旦到达要调用的函数,它们将从最简单的过滤到更复杂的过滤。我一开始尝试了嵌套if,这就是我的结果,然后尝试了切换,最后在同一个地方完成了切换。我就在这里: if ($req === "remind" || "tip" || "half" || "secHalf" || "fin") { //so

我已经对这段代码感到沮丧好几个小时了,我只能低头寻求帮助。我试图让这些嵌套的if工作,但它要么什么也不返回,我也没有收到错误,要么它将在编码结束之前停止。这些输入都来自组单选按钮,其顺序的原因是,一旦到达要调用的函数,它们将从最简单的过滤到更复杂的过滤。我一开始尝试了嵌套if,这就是我的结果,然后尝试了切换,最后在同一个地方完成了切换。我就在这里:

if ($req === "remind" || "tip" || "half" || "secHalf" || "fin")
{
    //some code;
}
else 
{
if ($manUpdate === "first15" || "first10" || "first5" || "sec15" || "sec10" || "sec5")
    {
        //some code;
    }
else
    {
        if ($TypeA === "free throw.")
            {


                if($TypeA === "free throw." && $PointA === "1")
                    {
                        //some code;
                    }
                else if($TypeA === "free throw." && $PointA === "2")
                    {
                        //some code;
                    }
                else if($TypeA === "free throw." && $PointA === "3")
                    {
                        //some code;
                    }
            }
        else if ($TypeB === "free throw.")
            {
                if($TypeB === "free throw." && $PointB === "2")
                    {
                        //some code;
                    }
                else if($TypeB === "free throw." && $PointB === "2")
                    {
                        //some code;
                    }
                else if($TypeB === "free throw." && $PointB === "3")
                    {
                        //some code;
                    }
            }
        else
            {
                if ($TypeA === "shot." || "Slam Dunk!" || "from Downtown!")
                    {
                        //some code;
                    }

                if ($TypeB === "shot." || "Slam Dunk!" || "from Downtown!")
                    {
                        //some code;
                    }

            }
    }
}   
我知道迭代的最后一个“if”不应该是“else-if”,但这是因为否则我会在if参数下得到意外“{”的语法错误。我也尝试过类似于最后2个“if”的方法在这里,我只是把if放在它们所有的位置上,没有嵌套它们,但这确实通过了第二个if语句,然后每次它都会结束,并绕过所有其他的可能性

我还知道,每个语句中的代码都是有效的,因为当在它们自己的页面上单独尝试时,它们确实按照预期运行,因此没有理由在其中添加所有额外的代码

非常感谢您提供的任何帮助,因为我以前没有处理过嵌套if的问题,而这似乎是我认为应该的,但当然,如果我们都知道我们不需要问的所有问题,请提前感谢您的关注和您提供的任何帮助

编辑所以这里是工作代码如下所列,但我遇到了一个新问题。似乎我可以运行一个实例的代码,但它工作得很好,但当我复制文件夹中的一组新文件到另一个文件并运行它时,里面的代码现在被破坏了,而这个链接到的页面没有做任何事情。它的行为就好像一切都发生了一样工作正常,我没有在日志中收到任何php错误。不知道是否需要更改会话名称,因为它们在两组文件中相同,但它们在两个单独的文件夹中,因为最终我打算同时运行此脚本的5个实例

if ($req === "remind" || $req === "tip" || $req === "half" || $req === "secHalf" || $req === "fin")
{
    ManualBasic();
}
else 
{
if ($manUpdate === "first15" || $manUpdate === "first10" || $manUpdate === "first5" || $manUpdate === "sec15" || $manUpdate === "sec10" || $manUpdate === "sec5")
    {
        Manual510();
    }
else
    {
        if ($TypeA === "free throw.")
            {


                if($TypeA === "free throw." && $PointA === "1")
                    {
                        // some code
                    }
                else if($TypeA === "free throw." && $PointA === "2")
                    {
                        // some code
                    }
                else if($TypeA === "free throw." && $PointA === "3")
                    {
                        // some code
                    }
            }
        else if ($TypeB === "free throw.")
            {
                if($TypeB === "free throw." && $PointB === "1")
                    {
                        // some code
                    }
                else if($TypeB === "free throw." && $PointB === "2")
                    {
                        // some code
                    }
                else if($TypeB === "free throw." && $PointB === "3")
                    {
                        // some code
                    }
            }
        else
            {
                if ($TypeA === "shot.")
                    {
                    // some code
                    }
                if ($TypeA === "Slam Dunk!")
                    {
                    // some code
                    }
                if ($TypeA === "from Downtown!")
                    {
                    // some code
                    }
                if ($TypeB === "shot.")
                    {
                    // some code
                    }
                if ($TypeB === "Slam Dunk!")
                    {
                    // some code
                    }
                if ($TypeB === "from Downtown!")
                    {
                        // some code
                    }
                }
        }
    }
试试这个

if ($req === "remind" || $req === "tip" || $req === "half" || $req === "secHalf" || $req === "fin")
代替(如AD7six所述-无意/不合逻辑)


IF语句没有执行您认为它们正在执行的操作,因为这不是检查变量是否有多个可能值的正确语法。有几种方法可以执行此操作,但这可能是最简洁的方法:

if ($req === "remind" || "tip" || "half" || "secHalf" || "fin")
变成

if (in_array($req, array("remind", "tip", "half", "secHalf", "fin")))

if($TypeA==“shot.”| | |“Slam Dunk!”| |“from nown!”
的意思是“或true”也就是说,如果您在执行过程中点击该按钮,代码将始终进入if。与其发布此嵌套if代码,不如建议您重构。避免嵌套逻辑-“尽早返回”是一个可能会对您有所帮助的原则。一旦您有了工作功能代码,请发布您的工作代码(不要忽略
//某些代码
部分)在上,您可以获得有关如何更好地执行此操作的帮助。您在代码中做了一些不必要的事情。我可以让我的并发实例正常工作。我没有在目录上授予其他实例执行的正确权限。我感谢大家的帮助!+1将有助于解释问题中的语法含义。添加将变量映射到每个条件解决了我的问题。我不知道为什么我忽略了这一点,因为这似乎很明显,几乎是因为在运行带有“| |”的查询时只运行了相同的语法。我感谢您向我指出这一点,因为我花了整整5个小时的时间在各个部分之间来回移动并敲打我的头。非常感谢!
if (in_array($req, array("remind", "tip", "half", "secHalf", "fin")))