PHP - switch语句,在每种情况下都没有中断

时间:2017-03-23 13:36:48

标签: php

这让我难倒了一会儿...... 我在PHP中教过switch语句只使用“break”关键字来打破switch语句的电路。 我没有使用多个if语句来保持干净,而是使用了switch语句(用于验证用户名/密码) 这是代码。

代码:

The Eclipse Installer executable launcher was unable to locate its companion shared library.

如果我输入: 用户名:凯尔 密码:foobar

我只希望输出“用户名和/或密码不正确”,因为这是唯一的真实情况...... 然而,直到休息的所有内容似乎都评估为真,输出除了默认值之外的所有内容,即使(1> 2)显然是错误的......

非常感谢帮助。 谢谢!

3 个答案:

答案 0 :(得分:3)

你必须在每种情况下都添加一个休息时间:

case($passwords[$key] != $password):
        echo "The username and/or password is incorrect<br>";
        break;
    case(strlen($username) < 4 || strlen($username) > 10):
        echo "The username must be between 4-10 characters<br>";
        break;
    case(strlen($password) < 4):
        echo "The password must be at least 4 characters<br>";
        break;            
    case(1>2):
        echo $username . " " . $password . " " . strlen($username) . " " . strlen($password);
        break;

答案 1 :(得分:-1)

如果您希望使用case语句,则每个case都应包含中断。在您的示例代码中,由于它不是那么冗长,因此可以使用if..else..语句轻松完成,并且可以接受。

答案 2 :(得分:-1)

每个用过的案例块应以休息结束。否则,代码将执行下一个案例,依此类推,利用被称为“直通”的东西。 在某些情况下,此功能非常有用。