誰能詳細的解釋一下PHP中 $a=10; $b=$a-- + -- $a; 的執行過程嗎?

來源:互聯網
上載者:User
誰能詳細的解釋一下PHP中 $a=10; $b=$a-- + -- $a; 的執行過程嗎?

我在看高洛峰老師的著作《細說PHP》時,發現

$a = 10;$b = $a++ + ++$a;    //書上寫的執行過程是$a先自增1後再自增1,再賦給$becho $a;       //$a = 12;echo $b;       //$b = 22;$b = $a-- - --$a;   //$a先自增1後再自增1,再賦給$becho $a;       //$a = 10echo $b;       //$b = 2

如果如上邏輯,那麼再加上

$b = $a-- + --$a;echo $a;       //$a = 8;echo $b;       //$b = 18;

有誰能說一下這段代碼的詳細執行過程嗎?

回複內容:

誰能詳細的解釋一下PHP中 $a=10; $b=$a-- + -- $a; 的執行過程嗎?

我在看高洛峰老師的著作《細說PHP》時,發現

$a = 10;$b = $a++ + ++$a;    //書上寫的執行過程是$a先自增1後再自增1,再賦給$becho $a;       //$a = 12;echo $b;       //$b = 22;$b = $a-- - --$a;   //$a先自增1後再自增1,再賦給$becho $a;       //$a = 10echo $b;       //$b = 2

如果如上邏輯,那麼再加上

$b = $a-- + --$a;echo $a;       //$a = 8;echo $b;       //$b = 18;

有誰能說一下這段代碼的詳細執行過程嗎?

汗,三段代碼都是一樣的,有必要放那麼多嗎?不管是$a++還是++$a,你只要明白是從左往右讀代碼就好了。

$a++的意思是先將$a的值取出,然後對其自行自加1,所以$b = $a++;的話輸出的結果應該是$a=11;$b=10;

++$a的意思則是先對$a進行自加1,然後再將$a值取出,所以$b = ++$a;的話輸出的結果應該是$a = 11;$b=11;

如果你能理解上面兩段話的話,按照這個思路理解你的算段就不是問題了。我就距離說一下你最後一個吧:

$b = $a-- + --$a;

這個為了方便理解應該可以拆分成

$c = $a--;$d = --$a;$b = $c + $d;

按照上面的解釋,$a--這裡返回的就是$a值,然後$a自減1,此時$a=9;$c=10;--$a這裡是$a自減1然後返回$a值,所以此時$a=8;$d=8;。最後得到的結果自然是$a=8;$b=18;

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.