在PHP中关闭花括号后的分号

Sub*_*niC 8 php

我正在编写一个脚本来制作文本块并通过短信发送.今天早些时候,我正在审查一些代码,将字符串拆分成块,然后我看到了一些我以前从未见过的东西.我在谈论";" 在片段的en后面的"}"之后.

为什么这个结肠?我知道它有效,但我不知道它是否为解释器添加了一些语义或一些指令,任何人都知道这是为了什么?

while(1)
{
    $length = (strlen($output)+strlen($words[$i]));
    if($length>$new_max)
    {
        if(count($words) > 0)
        {
            $out_array[] = $output;
            $output = '';

        }
        else
        {
            break;    
        }
    }
    else
    {
        $output = $output." ".$words[$i];
        ++$i;
    };
};
Run Code Online (Sandbox Code Playgroud)

编辑:看起来很清楚分号和多个分号一起对结果没有影响,但是,你知道它是否对解释器有一些影响?它解析它时是在做什么(内部)?

Eva*_*ran 13

我认为这两个分号在这里什么都不做.它可能被解释为紧跟在if/ 之后的空表达式while.


Dmi*_*tri 5

这些都是不必要的。他们不会伤害剧本,只是没有必要。程序员可能习惯于在每条语句的末尾添加分号。也许他从另一种编程语言中得到了这个习惯,也许他的 IDE 显示了没有分号的错误,或者他只是一个初学者。无论如何,那里既没有伤害也没有帮助。此外,程序员使用 while(1) 的事实告诉我,他要么非常懒惰,因为通常程序员会写 while(true),输入 while 1 的唯一原因是因为它的输入更少。受过任何类型正规培训的程序员不会写 while(1) 而不是 while(true)。这只是我的意见,但它基于超过 10 年的 3 种语言编程经验。

  • 我很高兴 PHP 开发人员中存在任何与严格相似的东西,例如选择“while(1)”而不是“while(true)”,尤其是在看起来直接从 C 音译而来的代码中,可能可靠地被用来表示懒惰——我的意思是,你会怎么说? (2认同)