Php 编程101 if/else语句

Php 编程101 if/else语句,php,if-statement,conditional,conditional-statements,Php,If Statement,Conditional,Conditional Statements,这可能是您在stackoverflow上找到的最容易回答的问题,但我想一劳永逸地把这种困惑从我的头脑中消除。考虑下面的if语句: if(x > 0) { echo 'Inside if'; } // apparently there is a hidden else here.... echo 'This comes after if'; 现在考虑下面的一个: if(x > 0) { echo 'Inside if'; } else { echo 'Ins

这可能是您在stackoverflow上找到的最容易回答的问题,但我想一劳永逸地把这种困惑从我的头脑中消除。考虑下面的if语句:

if(x > 0)
{
    echo 'Inside if';
}
// apparently there is a hidden else here....

echo 'This comes after if';

现在考虑下面的一个:

if(x > 0)
{
    echo 'Inside if';
}
else
{
    echo 'Inside else';
}

echo 'This comes after if/else';
在第一个示例中,如果条件的计算结果为true,则将打印内部if,但不会打印if后面的内容吗?我的意思是,我的if中没有返回,所以代码应该正常继续,对吗?。对于第二个if语句,同样的事情是,语句后面的任何内容都将被打印,因为代码的执行将正常继续。如果我们不显式定义一个if语句,那么if语句后面真的有虚拟else吗?我的意思是,如果在if语句之后的内容被打印出来,无论条件的计算结果是否为true,那么在if语句之后就没有一个虚拟的else。另外,在if-then-Else语句中何时绝对需要Else而不是像第一个示例中那样依赖虚拟Else?请解释一下


谢谢

如果if条件的计算结果为false,则无论何时您想要实际执行某项操作,都绝对需要使用else。如果您只想在正确的情况下执行某项操作,而在错误的情况下则完全不执行任何操作,则可以跳过else部分。

如果If条件评估为false,则无论何时您想要实际执行某项操作,else都是绝对必要的。如果你只想在正确的情况下做某件事,而在错误的情况下什么也不做,你可以跳过else部分。

实际上没有隐藏的else。条件语句是暂时分支代码的过程执行的一种方法。一旦完成,它将继续它停止的地方,除非你从一个函数中返回,例如。

实际上没有隐藏的else。条件语句是暂时分支代码的过程执行的一种方法。一旦完成,它将继续它停止的位置,除非您从函数中执行返回操作。例如。

需要ELSE的简单示例:

IF (loadfile == True)
{
    println("file loaded...on to processing...");
}
ELSE
{
    :: raise an error and stop execution ::
}

:: continue with processing file ::

您需要ELSE的简单示例:

IF (loadfile == True)
{
    println("file loaded...on to processing...");
}
ELSE
{
    :: raise an error and stop execution ::
}

:: continue with processing file ::

虚拟else和else之间的区别在于,虚拟else总是被执行,而真实else只是有条件地执行。例如,考虑这一点:

if(x > 0)
{
    echo 'Inside if';
}
else
{
    echo 'Inside else';
}

echo 'This comes after if/else';
与此完全相同:

if(x > 0)
{
    echo 'Inside if';
}
if(x <= 0)
{
    echo 'Inside else';
}
if(x == x)
{
    echo 'This comes after if/else';
}

您的虚拟else根本不是真正的else,它总是被执行。

虚拟else和else之间的区别在于虚拟else总是被执行,而真实else只是有条件地执行。例如,考虑这一点:

if(x > 0)
{
    echo 'Inside if';
}
else
{
    echo 'Inside else';
}

echo 'This comes after if/else';
与此完全相同:

if(x > 0)
{
    echo 'Inside if';
}
if(x <= 0)
{
    echo 'Inside else';
}
if(x == x)
{
    echo 'This comes after if/else';
}

您的虚拟else根本不是一个else,它总是被执行。

您认为没有虚拟else是正确的。无论条件的计算结果是否为true,{}之外的任何内容都将被执行。是-您的最后一个回显在if/else块之外,并且将始终执行。因此,在这两个示例中,将打印最终回显。如果这发生在函数中,您可以在到达该行之前返回,而该行不会被打印,或者引发异常,导致无法到达该行,但在一个简单的if/else中,它将始终执行,因为它不是条件块的一部分。你想不出一个实例,你希望代码在if中运行,在if关闭后,代码在else中运行,但在else中不运行?你是正确的,没有虚拟else。无论条件的计算结果是否为true,{}之外的任何内容都将被执行。是-您的最后一个回显在if/else块之外,并且将始终执行。因此,在这两个示例中,将打印最终回显。如果这发生在函数中,您可以在到达该行之前返回,而该行不会被打印,或者引发异常,导致无法到达该行,但在一个简单的if/else中,它将始终执行,因为它不是条件块的一部分。你想不出一个实例,你希望代码在if中运行,在if关闭之后,而不是在else中运行?好的,出于某种原因,我一直认为如果你不指定en else语句,那么无论if语句后面的是什么,都被认为是在else语句里面的,啊,就这样。IF中的代码是自包含的。国际单项体育联合会以外的一切都是无关的好吧,出于某种原因,我一直认为,如果不指定en-else语句,那么if语句后面的任何内容都会被视为在else语句中,啊,就这样。IF中的代码是自包含的。国际单项体育联合会以外的一切都是无关的