删除php中的if / else语句

时间:2014-10-13 07:28:51

标签: php if-statement

我正在尝试学习PHP,我正在玩if循环,只是为了学习如何使用它们。我制作了8个包含字母的变量。在此之后,我已经制作了8个if / else句子来写出这些字母。

<?php

$letter1 = 'N';
    $letter2 = 'E';
    $letter3 = 'K';
    $letter4 = 'T';
    $letter5 = 'A';
    $letter6 = 'R';
    $letter7 = 'I';
    $letter8 = 'A';

    if($letter1 == 'N') {
        echo $letter1;
    }
    else {
        echo 'FALSE';
    }

    if($letter1 == 'N' && $letter2 == 'E') {
        echo $letter1.$letter2;
    }
    else {
        echo FALSE;
    }

    if($letter1 == 'N' && $letter2 == 'E' && $letter3 == 'K') {
        echo $letter1.$letter2.$letter3;
    }
    else {
        echo FALSE;
    }

    if($letter1 == 'N' && $letter2 == 'E' && $letter3 == 'K' && $letter4 == 'T') {
        echo $letter1.$letter2.$letter3.$letter4;
    }

    else {
    echo FALSE;
    }

    if($letter1 == 'N' && $letter2 == 'E' && $letter3 == 'K' && $letter4 == 'T' && $letter5 == 'A') {
        echo $letter1.$letter2.$letter3.$letter4.$letter5;
    }
    else {
        echo FALSE;
    }

    if($letter1 == 'N' && $letter2 == 'E' && $letter3 == 'K' && $letter4 == 'T' && $letter5 == 'A' && $letter6 == 'R') {
        echo $letter1.$letter2.$letter3.$letter4.$letter5.$letter6;
    }
    else {
        echo FALSE;
    }

    if($letter1 == 'N' && $letter2 == 'E' && $letter3 == 'K' && $letter4 == 'T' && $letter5 == 'A' && $letter6 == 'R' && $letter7 == 'I') {
        echo $letter1.$letter2.$letter3.$letter4.$letter5.$letter6.$letter7;
    }
    else {
        echo FALSE;
    }

    if($letter1 == 'N' && $letter2 == 'E' && $letter3 == 'K' && $letter4 == 'T' && $letter5 == 'A' && $letter6 == 'R' && $letter7 == 'I' && $letter8 == 'A') {
        echo $letter1.$letter2.$letter3.$letter4.$letter5.$letter6.$letter7.$letter8;
    }
    else {
        echo FALSE;
    }

?>

所以输出是:

NNENEKNEKTNEKTANEKTARNEKTARINEKTARIA

我有问题,希望你能帮助我。 1:如果我想要输出: ñ NE NEK NEKT等等。如何在线之间留出空间。 Fx喜欢html

2:我可以做任何事情来忽略我的if / else语句吗?如果我只想写出“Nektaria”而不是N,NE,NEK,NEKT等,我当然可以删除它们,但这只是为自己做一些小任务。

最诚挚的问候 MADS

3 个答案:

答案 0 :(得分:0)

要回答关于空格的第一个问题,那么您必须在回声中添加这些问题 例如:

echo $letter1.$letter2. ' ';

对于你的第二个问题,你可以使用开关和排序来制作带数字的菜单。例如,如果按下4则打印出任何字母。

<?php
switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
    default:
       echo "i is not equal to 0, 1 or 2";
}
?>

http://php.net/manual/en/control-structures.switch.php

答案 1 :(得分:0)

来自this answer

  

PHP(通常)为网站生成HTML输出。     当显示HTML时,浏览器(通常)将文本中的所有空格折叠到单个空间中。有时,在标签之间,它甚至会将空白折叠为空。

所以你只想在echo语句的末尾添加一个<br/>,如下所示:

echo $letter1.$letter2.$letter3.'<br/>'; //And so on for all the other echo statements

现在回答问题的第二部分,if-else语句按顺序执行。这就是您按顺序查看输出的全部原因。如果您想先检查所有字母(输出“NEKTARIA”),您只需先执行该检查并重新排序if-else语句。要忽略if-else语句,您可以使用简单的$FLAG变量并将其设置为TRUEFALSE,具体取决于它是否已执行第一次检查。所以,一旦你完成了所需的检查,就行了:

$FLAG = true;

在所有if-else语句中,只检查是否$FLAG == false,然后才继续。

许多人已经指出的switch语句直接解决了这两个问题,并允许您封装多个条件并有选择地检查它们。

switch (n) {
 case label1:
  code to be executed if n=label1;
 break;
case label2:
 code to be executed if n=label2;
 break;
case label3:
 code to be executed if n=label3;
 break;
...
default:
 code to be executed if n is different from all labels;
}

代码非常直观且不言自明。这是official W3 Schools tutorial的链接,可能是您的一个很好的起点。希望这能让你开始朝着正确的方向前进。

答案 2 :(得分:0)

1)为了使你的输出像这样:N NE NEK NEKT

在echo语句中进行此更改:

echo $letter1." ";

echo $letter1$letter2.$letter3." "; 

等在两个变量之间打印一个空格你需要做的就是在想要有空格的变量之后添加这个部分:。“”

2)为了让你的出局像这样:Nektaria

不要在每个if else语句中回显多个变量。每个if-else循环只有一个变量。