看到项目中的for循环条件中有-->的写法,之前没见过;有大神了解这是什么用法吗?(我理解是循环十次,把$retry值减少到0)望解析谢谢
for($retry=10;$retry-->0;){
if(){
continue;
}
break;
}
看到项目中的for循环条件中有-->的写法,之前没见过;有大神了解这是什么用法吗?(我理解是循环十次,把$retry值减少到0)望解析谢谢
for($retry=10;$retry-->0;){
if(){
continue;
}
break;
}
你的理解有误
这实际上是两个语法的结合, 用括号表示即 ($a--) > 0
这个为什么能工作, 需要完全理解 for 循环的几个表达式的执行时刻.
for (expr1; expr2; expr3)
statement;
for
循环的这三个表达式.expr1
是在整个循环开始前执行 (所以通常用作初始化).expr2
是在每单个循环的开始前执行, 它应该可以被转换为一个布尔值, 如果为TRUE则继续, 如果为FALSE则跳出.expr3
则在每单个循环结束后执行.
并且实际上, 这三个 expr
都是可以省略的. for(;true;){...}
和 while(true){...}
没有任何区别
用等效的 while
来解释上面的几个 expr
的话也就是这样 (下面代码中的 expr
和上面的 expr
都相同编号一一对应)
expr1;
while (expr2) {
statement;
expr3;
}
当然了, 强烈不建议这种炫技写法, 给团队成员和其它维护者增加毫无意义的理解成本.
2 回答1.3k 阅读✓ 已解决
1 回答987 阅读✓ 已解决
2 回答849 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答905 阅读
1 回答891 阅读
1 回答820 阅读
i-->0 (i--)>0 不要被酷炫的符号迷惑啦
等同于
等同于
这样是不是可以理解了