0

次の行があります。

$this->magicQuotes = (bool) get_magic_quotes_gpc();

get_magic_quotes_gpc()SQLを生成するときに何度も使用されるため、オブジェクトに格納しています。また、ブールに変換しています。

それをブールに変換する価値があるかどうか疑問に思っています。チェックするステートメントは次のとおりです。

if ($this->magicQuotes) { ... }

テストが厳密にブール値である場合、これは少し速くなると思います。

これが速くない理由はありますか、またはこれを行わない他の理由がある場合は?

4

2 に答える 2

2

に変換しない場合bool、PHP はboolif ステートメントで式を評価するときにとにかく に変換する必要があります。したがって、明示的に変換するかどうかに関係なく、いつかは変換されboolます。入力を少なくできる方法をお勧めします。

また、この種の小さな最適化では、どちらが他のものより 0.0...01 秒速いかを心配するよりも、どちらが読みやすいかを心配する必要があります。

于 2009-01-24T01:19:14.230 に答える
1

phpが最後にboolとintの両方をどのように変換するかに応じて、これ以上速くなることはありません。

通常、x86 では、bool と int の両方で、inif(foo)はゼロに対するテストであり、それに応じてジャンプします。したがって、キャストによってパフォーマンスが向上することはありません。

于 2009-01-24T01:21:09.920 に答える