[PHP-users 5087] Re: $i++ と ++$i の速度の差について

Osamu Shigematsu php-users@php.gr.jp
Tue, 29 Jan 2002 22:38:54 +0900


重松です。

on 02.1.29 7:34 PM, Mashiki at mashiki@yanah.com wrote:

> $i++ と ++$i の速度の差はあるのでしょうか?
> (前置と後置の差はインクリメントのタイミングだけかと
> 思っているのですが違うのでしょうか。)

もっとよく考えてください。
式は左辺に値を渡しますが、$i++ の場合、左辺にはインクリメントする前の値を
渡す必要があるので、値をコピーしなければなりません。
それに対して、++$i の場合は、そのまま $i を左辺に渡せばよいことになります。
まともな C コンパイラなら左辺値が不要な場合には最適化してくれるので、
そういうことを気にする人はあんまりいないのかも知れないんですけど、
本質的なことを掘り下げて考えること自体は意味があると思います。
PHP はインタプリタなので、ループ内部で無駄な計算をしない、
などという大昔の BASIC などの常識がそのまま通用します。

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/%7eshige/
mailto:shige@ravi.ne.jp