- 締切済み
phpのfor文先頭の式内での0x1、0x2とは
phpのfor文に関して質問させて頂きます。 phpのリファレンスを見ていて、分からない事があります。 [ PHP マニュアル > 言語リファレンス クラスとオブジェクト ] http://php.net/manual/ja/language.oop5.php こちらの「User Contributed Notes」の14 redrik at gmail dot comの中に、以下のようなfor文があります。 class FlagsEnum extends Enum { public function __construct( /*...*/ ) { $args = func_get_args(); for( $i=0, $n=count($args), $f=0x1; $i<$n; $i++, $f *= 0x2 ) $this->add($args[$i], $f); } } この for( $i=0, $n=count($args), $f=0x1; $i<$n; $i++, $f *= 0x2 ) の部分ですが、結果を見ると、$fの値を2倍しながらループさせるという感じなのですが、それであれば、なぜ for( $i=0, $n=count($args), $f=1; $i<$n; $i++, $f *= 2 ) と書かないのでしょうか? もしかすると値を単純に2倍にしているわけではないのでしょうか? 詳しい方がいらっしゃいましたら、ご教示を宜しくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Gotthold
- ベストアンサー率47% (396/832)
回答No.2
noname#244856
回答No.1
お礼
ありがとうございます! 意図を表現しようとしている訳ですね。 ビットシフト、勉強になりました。 http://php.net/manual/ja/language.operators.bitwise.php ありがとうございました。