2010年8月26日

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

進藤です。

http://www.php.net/manual/ja/language.operators.precedence.php
+ - . の結合時の評価は left
++ -- の結合時の評価は 結合しない

http://www.php.net/manual/ja/language.operators.increment.php
$a-- 後置減算子 $a を返し、$a から 1 を引きます。


これらをベースに考えると
$a = 1;
echo ($a + $a-- + 0)

1)最初に左の$aが評価されて、次に+演算が
(1 + $a-- +0)
2)次に右側の$aが評価されて、その後、$aはデクリメントされ
(1 + 1 + 0)
3)式の評価として次の+演算が評価され
2
が素直かなと

ただ、文法上は式の評価が
($a + ($a-- + 0)) と見なすことも可能ですから
(1 + 0) で $a が0になり
(0 + (1 + 0))
1
もアリですね。

ただ、互換性を考えるとPHP4の評価順がPHP5でも再現されて欲しいかなと


>野村です。
>$aと$a--が評価される順番の問題ですね。
>--$aではないので$a--の評価結果が0にはならないはずです。
>ただし、$aが$a--より後に評価されるのであるのなら、0となり得ます。
>A + B の評価がB A A+Bの順で行われるのなら、前者が2、後者が1となり得ますね。
>ただ、そうでないのであれば、前者と後者の値は両方とも2になるはずです。
>文法上、規定はなく実装上の問題と思われます。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
進藤寿則@アットシステム _/_/
e-mail shindo@atsystem.jp _/
Phone 022-385-1593 Fax 385-1595 _/

_______________________________________________
PHP-users mailing list PHP-users@xxxxx
http://ml.php.gr.jp/mailman/listinfo/php-users
PHP初心者のためのページ - 質問する前にはこちらをお読みください
http://oldwww.php.gr.jp/php/novice.php3


投稿者 xml-rpc : 2010年8月26日 09:22
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/97964
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。