[PHP-users 35350] Re: 演算子の評価順位

Youji Sekine tmp_sekine @ ifos.co.jp
2010年 8月 25日 (水) 19:13:03 JST


関根と申します。

最初の式は
(($a + 0) + $a--)
なので、($a + 0) が 1
そうすると (1 + $a--) なので次の式評価で
(1 + 1) で $a が 0 となります。
最終的には ((1 + 0) + 1) なので 2 です。

二番目の式は
(($a + $a--) + 0) ---> ($a + $a--) と同じ
なので、($a + $a--) が実行される前に $a-- が評価されて、$a が 0 になり 1
を返すので、(0 + 1) となり
最終的には ((0 + 1) + 0) なので 1 です。


(2010/08/25 18:43), Shindo wrote:
> 進藤です。よろしくお願いします。
> 
> 我が社の若手が発見したのですが、以下の結果をどう考えたら良いのでしょうか。
> 
> $ php -v
> PHP 5.1.6 (cli) (built: Apr  7 2009 08:00:18)
> Copyright (c) 1997-2006 The PHP Group
> Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
> 
> $ php -r '$a = 1; echo ($a + 0 + $a--) . "\n";'
> 2
> 
> $ php -r '$a = 1; echo ($a + $a-- + 0) . "\n";'
> 1
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
> 


PHP-users メーリングリストの案内