level 8
磁选机除铁_强磁定制
楼主
$a=6
Echo $a++ // 6
按照教科书上的解释,a++ 表示两个过程:①返回当前值 a=6, ②执行自增运算$a+1.
(我的理解第三步$a=$a+1, 即把$a自增1后的最终运算结果值付给变量$a,并不包含在$a++ 中)。
我的疑问是,当:echo $a++的时候,为什么只返回a的初始值,而没有返回$a+1的最终运算结果呢?
我的猜测是,$a++表示两个运算过程:返回当前值,自增1。第二步自增1只是运算,其运算结果 保存在内存里,并没有访问变量名为$a的物理存储单元,并更新$a保存的数值,即没有$a=$a+1这个赋值过程。
所以,当你echo $a++时,只返回6.
当你echo $a 是,程序会访问变量$a ,同时会把$a+1的最终运算结果赋给$a,并返回更新后的值,
以上是我的猜测,不知道正确与否。
请教了好多前辈,他们说,echo $a++ , 只是一个执行的逻辑先后顺序问题,类似于优先级,执行:echo $a++时,先返回使用$a的初始值,再自增。按照各位前辈的说法,echo $a++的运算过程只是设计php这门语言的人工程师的一种强制的硬性规定。那么,我的疑问又来了,这一个强制的逻辑执行顺序的约定背后,有没有一个自然的物理过程呢?还就只是对$a++执行顺序的一种规定呢?
2022年11月15日 09点11分
1
Echo $a++ // 6
按照教科书上的解释,a++ 表示两个过程:①返回当前值 a=6, ②执行自增运算$a+1.
(我的理解第三步$a=$a+1, 即把$a自增1后的最终运算结果值付给变量$a,并不包含在$a++ 中)。
我的疑问是,当:echo $a++的时候,为什么只返回a的初始值,而没有返回$a+1的最终运算结果呢?
我的猜测是,$a++表示两个运算过程:返回当前值,自增1。第二步自增1只是运算,其运算结果 保存在内存里,并没有访问变量名为$a的物理存储单元,并更新$a保存的数值,即没有$a=$a+1这个赋值过程。
所以,当你echo $a++时,只返回6.
当你echo $a 是,程序会访问变量$a ,同时会把$a+1的最终运算结果赋给$a,并返回更新后的值,
以上是我的猜测,不知道正确与否。
请教了好多前辈,他们说,echo $a++ , 只是一个执行的逻辑先后顺序问题,类似于优先级,执行:echo $a++时,先返回使用$a的初始值,再自增。按照各位前辈的说法,echo $a++的运算过程只是设计php这门语言的人工程师的一种强制的硬性规定。那么,我的疑问又来了,这一个强制的逻辑执行顺序的约定背后,有没有一个自然的物理过程呢?还就只是对$a++执行顺序的一种规定呢?