【问题标题】:Syntax error with my "if statement" [closed]我的“if语句”的语法错误[关闭]
【发布时间】:2012-12-20 05:10:15
【问题描述】:

如何正确编写这个 if 语句,以便“||”作品? ||顺便说一句,代表“或”。当我取出“|| >30”时,我没有收到任何语法错误。但是当我确实包含“|| >30”时,我收到一个语法错误,说“>”是意外​​的。

if (strlen($_POST['password']) < 7 || >30){
            $errors[] = 'Your password must be 7 to 30 characters long.'

【问题讨论】:

    标签: php syntax-error


    【解决方案1】:
    if (strlen($_POST['password']) < 7 || >30){
    

    我猜应该是这样的:

    if (strlen($_POST['password']) < 7 || strlen($_POST['password']) > 30){
    

    由于您要求更短的版本,这是使用相同逻辑和功能的最简单方法:

    $length = strlen($_POST['password']);
    if ($length < 7 || $length > 30){
    

    【讨论】:

    • 我认为 OP 知道这一点,他想缩短声明。
    • 太棒了,它说我必须等待 11 分钟才能接受答案,所以我会确保这样做。谢谢!
    • 我是初学者,所以我实际上并不知道,但如果有办法缩短声明,请随时发布。我不介意学习捷径:)
    • @KacyRaye,欢迎您。顺便说一句,您永远不应该限制密码的长度,因为这是一种不好的安全做法。见:stackoverflow.com/q/98768/1592648
    • 看起来我将删除最大长度,然后大声笑...
    【解决方案2】:

    我认为让它更容易的唯一方法是将密码长度存储在这样的变量中:

     $pwd_len = strlen($_POST['password'])
    
     if ($pwd_len < 7 || $pwd_len > 30){
    

    这在您的情况下可能没有用,但在您需要多次参考密码长度时会很有帮助。所以它会为你节省很多时间,而不是总是写strlen($_POST['password'])

    也许我错了,但希望对你有帮助:)

    【讨论】:

    • 不,你完全正确,谢谢,从现在开始,我会在编写代码时牢记变量。我一周前才刚开始,所以我需要我能得到的所有提示:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-02
    • 2012-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多