doushi9856 2017-07-27 03:19
浏览 42
已采纳

没有逻辑语句的花括号的目的是什么?

I had a piece of code not working as I intended.

The code was roughly like this:

foreach ($arrayOfIds as $iterId)
{
    if ($iterId === $unchangingId)
    {
        // ...
    }

}

The problem was that it was going into the if statement regardless of whether the IDs matched or not.

Then I noticed that my if statement was incorrectly declared, and actually looked like this:

if ($iterId === $unchangingId);
{
    // ...
}

That single semi colon gave me so much grief.

Now, I know how/why I didn't get a compiler or runtime error because of the if ($iterId === $unchangingId);

but I never knew you could have code inside 2 curly braces like that, without anything else.

I want to learn more about this, and what it gets used for, if anyone could elaborate on it I'd be extremely grateful!

  • 写回答

2条回答 默认 最新

  • douguizhuang8276 2017-07-27 03:28
    关注
    if ($iterId === $unchangingId);
    {
        // ...
    }
    

    This is two separate and unrelated constructs.

    An if construct can take the form of:

    if (expression) statement;
    

    without curly braces when used with a single statement, and that statement doesn't have to have anything in it but the terminating semicolon. So

    if ($iterId === $unchangingId);
    

    is a complete, standalone thing which you're then following with the unrelated statement block wrapped in braces:

    {
        // ...
    }
    

    which does nothing special, the contents are handled just as if the curly braces weren't there.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 phython读取excel表格报错 ^7个 SyntaxError: invalid syntax 语句报错
  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?