永发信息网

php表达式非常小的问题

答案:1  悬赏:20  手机版
解决时间 2021-07-17 13:23

<?php
function double($i)
{
return $i*2;
}
$b = $a = 5;
$c = $a++;
$e = $d = ++$b;
$f = double($d++);
$g = double(++$e);
$h = $g += 10;

echo $f."<br>",
$g."<br>",
$h."<br>";

?>
上面这段php程序语句输出的为什么是:“12<br>24<br>24<br>”。
而不是“14<br>26<br>26<br>”。在程序的第八行中不是已经把$d定义为7了么?怎么$f会输出“2*6=12”,而不是"2*7=14"。

最佳答案

<?php
function double($i)
{
return $i*2;
}
$b = $a = 5; // $a=$b=5
$c = $a++; // $c=5, $a=6
$e = $d = ++$b; // $e=$d=$b=6
$f = double($d++); // $f=6*2=12, $d=7(传过去的是$d增加前的值6)
$g = double(++$e); // $g=7*2=14, $e=7
$h = $g += 10; // $h=$g=24

echo $f."<br>", // 12
$g."<br>", // 24
$h."<br>"; // 24

?>

这个问题其实就是$i++和++$i增1的循序问题
$i++是先取$i的值,然后++$i
++$i则是先++$i,然后再取$i的值
所以
$a = $b = 1;
$c = $a++; // $c = 1
$d = ++$b; // $d = 2
...// $a = $b = 2

不管是$i++还是++$i对$i来说效果都是一样的,都自增了1
只不过二者返回的值不同,前者是返回增加前的值,后者是返回增加后的值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
一到英语题,谁帮忙解一下?
白羊座的女人没有白羊座的男人,性感吗?
我的QQ密码和密保都被盗了,怎样才能找回?
谁帮我分析小孩的名字。
炫舞更新怎么会失败
怎么让自己在课堂上认真听
有些女孩子爱发火是什么原因?
魔域VIP一星的是不是永久的?
男的流泪了,是否也就证明他真动情了?
应唔应该执着一份无结果噶感情?
上海1区 DNF +14的圣灵战士项坠多少钱
笔记本的密码忘了怎么办啊?
地下怎么开图标
现在玩冒险岛的人都是些什么人?
轿车在更换防冻液的时候用排空气吗?比如:力
推荐资讯
qq炫舞自己是团长,每天登陆一次会增加贡献度
dnf出现多个客户端
怎么样可以把复制的繁体字转换成简体字
DNF悬空王图能爆啥好装备(非深渊模式)
求助关于辽宁省大连开发区金地新里程的问题
为什么我的QQ农场弄不了?
你好 请问你知不知道有什么网站有写窗帘设计
魔兽世界猩猩血上万的天赋则么点
谁有免费下载3GP短片的网站??
怎麽凌晨过后都没什麽好看的电视?
《喜羊羊与灰太郎》一共有几集?
DNF:鬼泣觉醒怎样?帅吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?