<code><?php
$i=2;
switch($i++){
case 2:
echo '输出2<br/>';
echo $i;
break;
case 3:
echo '输出3<br/>'.$i;
break;
case 1:
echo "输出1<br/>";
break;
default:
break;
}
</code>下面这两段代码迷惑:
<code><?php
for($i=0;$i<3;++$i){
$j=$i;
echo $j.'-'.$i.'<br/>';
}
for($i=0;$i<3;$i++){
$j=$i;
echo $j.'-'.$i.'<br/>';
}
</code>这里的i++和++i没有区别,不理解?
立即学习“PHP免费学习笔记(深入)”;
<code><?php $a=1; echo $a+$a++.'<br/>'; $a=1; echo $a+$a+$a++; </code>
这里的输出值为什么都是3?
<code><?php
$i=2;
switch($i++){
case 2:
echo '输出2<br/>';
echo $i;
break;
case 3:
echo '输出3<br/>'.$i;
break;
case 1:
echo "输出1<br/>";
break;
default:
break;
}
</code>下面这两段代码迷惑:
<code><?php
for($i=0;$i<3;++$i){
$j=$i;
echo $j.'-'.$i.'<br/>';
}
for($i=0;$i<3;$i++){
$j=$i;
echo $j.'-'.$i.'<br/>';
}
</code>这里的i++和++i没有区别,不理解?
立即学习“PHP免费学习笔记(深入)”;
<code><?php $a=1; echo $a+$a++.'<br/>'; $a=1; echo $a+$a+$a++; </code>
这里的输出值为什么都是3?
php
$a=1;
echo $a+$a++.'
';
$a=1;
echo $a+$a+$a++;
第一个echo的执行顺序如下图:
$a = 1;
$a++ 返回1保存到临时变量 ~1
这个时候!0(也就是$a已经自增变为2)了
~1+!0 (1+2) 保存到临时变量 ~2
输出3
第二个echo的执行顺序如下图:
如图所示
执行顺序是
$a = 1;
$a+$a 的结果2保存到临时变量 ~1
$a++ 返回1, 保存到临时变量 ~2
~1+~2(1+2) 保存到临时变量 ~3
输出3
对于for语句来说,你那样写结果是一样的,实际i++与++i二者的使用执行还是有区别的.如下:
比如:
<code>$n = 1; echo $n++; // 1 先使用 echo $n; // 2 后执行++ echo '<hr>'; $n = 5; echo ++$n; // 6 先执行++ ,后使用$n的值 echo $n; // 6 </code>
所以
DM建站系统律师事务所HTML5网站模板, DM企业建站系统。是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。DM系统的理念就是组装,把模板和区块组装起来,产生不同的网站效果。可以用来快速建设一个响应式的企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。DM企业建站系统安装步骤:第一步,先用phpmyadmin导入sql文件。 第二步:把文件放到你的本地服务器
0
<code>$a=1; echo $a+$a++.'<br/>'; // 2 + 1 $a=1; echo $a+$a+$a++; // (1+1)+1 </code>
简而言之,运算符优先级相同,其结合方向决定求值顺序
通常而言++优先级高,所以$a+$a++ 是先使用后者$a值,又因为是同一变量,本着从左到右结合,在使用第一个$a时值变成了2,所以结果2+1 得3
但无论是i++,还是++i(只能改变局部结合顺序),都是加法运算(优先级相同),显然加运算整体从左到右,($a+$a)+$a++,后者$a++ 不影响,后者表达式前2个$a的值.
因为第一段代码输出的是 $i。
第二段代码输出的是 $a+$a+($a++)
其实就是$a++ 和 ++$a 的区别。要实际输出他们的时候才会有区别,否则没有任何区别。
例如:
$a=1,$b=1;
$a++;
++$b;
echo '这是$a++后的结果: '.$a; // 2
echo '这是++$b后的结果:'.$b; // 2
由于输出的是经过++(自增)后的结果,所以是一样的。
若是直接输出那就不一样了:
$a=1,$b=1;
echo '这是$a++: '.$a++; // 1
echo '这是++$b:'.++$b; // 2
由于是直接输出的,所以会不同。原因是:
$a++ 先返回$a的值,然后自增。
++$b是直接返回自增后的值
建议参看 http://php.net/manual/zh/control-structures.for.php
无论是 i++ 或者 ++i 都是在本次循环结束后再运算,再进入下一次循环
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号