-1

例如...

public function processRowSet($rowSet, $singleRow = false){
    $resultArray = array();
    while($row = mysql_fetch_assoc($rowSet)){
        array_push($resultArray, $row);
    };

    if ($singleRow === true){
        return $resultArray[0];
    };

    return $resultArray;
}
...and then the next line continues without an issue

当我第一次开始使用 OOP PHP 时,我犯了在末尾添加分号的错误,我花了大约一个小时才弄清楚出了什么问题。

4

4 回答 4

5

为什么?

因为 PHP 编程语言的作者是这样设计语言的。

当您在 php 中创建一些代码时,会发生以下过​​程:

  1. 预解析器解析您的文件,查找语法错误。
  2. 后解析器解析您的文件,查找运行时错误。
  3. 文件内容变为汇编代码。
  4. 汇编代码变为机器代码,然后运行您的程序。

编程语言的作者使解析器允许在语句后使用分号,这就是允许您这样做的原因。(他们使用括号代替)。

一些编程语言要求您使用分号,因为解析过程可能很难实现。

于 2013-04-20T03:12:30.703 回答
1

区别在于语句和表达式:

  • if 语句、while 语句、函数等是不需要以分号结尾的语句。
  • 实际命令是表达式(即$foo = bar())。独立表达式需要分号,可能是因为它们没有大括号来表示表达式结束。

PHP 从 C 中借用了这种语法。

于 2013-04-20T03:20:53.103 回答
1

总而言之,您永远不需要在闭括号之后使用分号。您的代码应如下所示:

public function processRowSet($rowSet, $singleRow = false){
    $resultArray = array();
    while($row = mysql_fetch_assoc($rowSet)){
        array_push($resultArray, $row);
    }

    if ($singleRow === true){
        return $resultArray[0];
    }

    return $resultArray;
}

分号本身被视为 Null 语句(什么也不做)。这就是为什么一个常见的错误是编写如下循环:

for ($a=0; $a=10; $a++); 
    print $a; 

循环后的分号是什么都不做的命令,它将执行(无)10 次,然后打印出“11”。这相当于写:

for ($a=0; $a=10; $a++) {
    ; // do nothing
}
print $a; 
于 2013-04-20T03:30:09.020 回答
0

许多编程语言不需要语句结束,即。';' 在功能块或任何其他类型的块语句之后,例如 if、for、while 。我们没有通过终止符定义块的结尾,因为块已经被限制在 {} 中。这是由于语言解析器/编译器如何执行代码。

于 2013-04-20T03:16:11.020 回答