说说我碰到的一个面试题,

今天突然想起来了之前去面试做的一个笔试题,关于for 循环的。给大家分享下


$a = 0;
for($i=0,$k=0;$i<6,$k<10;$i++,$k++){

$a = $i+$k;
}
echo $a;

最后$a = 18

这是第一次遇到这种,中间expr2也可以用逗号分隔的。 在本地测试最后的记过是18. 查找php手册找到。如下

for

(PHP 4, PHP 5)

for 循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。 for 循环的语法是:

for (expr1; expr2; expr3)
    statement

第一个表达式(expr1)在循环开始前无条件求值(并执行)一次。

expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

expr3 在每次循环之后被求值(并执行)。

每个表达式都可以为空或包括逗号分隔的多个表达式。

表达式 expr2 中,所有用逗号分隔的表达式都会计算,但只取最后一个结果。

expr2 为空意味着将无限循环下去(和 C 一样,PHP 暗中认为其值为 TRUE)。

这可能不像想象中那样没有用,因为经常会希望用有条件的 break 语句来结束循环而不是用 for 的表达式真值判断。

终于心安。。。

再就是百度关于for循环中间这个也可以用&&来隔开

 for($i = 0, $j = 10;$i<=10 && $j>5; $i++, $j--){
 循环体内算法代码
}
//以上条件为多个条件。一旦条件为假,则会终止循环。

这篇文章有 2 个评论

    1. 是一个基础的问题,但是一般没人会这么用的。

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

关闭菜单