PHPの&演算子は何ですか?

可能重複:
  リファレンス - このシンボルはPHPで何を意味していますか?

私はパスワードジェネレータのチュートリアルを探していましたが、私はそれを見つけましたが、何かが私にちょっと混乱させました...

if ($strength & 2) {
$vowels .= "AEIOU";
}

What exactly is this operator? I know && equals "and" but just one &?

0
私の質問の半分が削除されて本当に迷惑だった。
追加された 著者 David Lawrence,

4 答え

That is called a bitwise operator. Learn more.

2
追加された
0
追加された

As in most programming languages, & is the bitwise and operator. x & 2 tests whether the second (least significant) bit of x is set (2 is 10 in binary).

0
追加された
@Davidこれらは2のべき乗であり、それぞれ2進数で0001、0010、0100、1000です。
追加された 著者 Zach Johnson,
@David:編集されたコードをわかりやすく見て、そのコードを書いた人が$ strengthをビットごとのフラグ変数として使用しているようです。
追加された 著者 Zach Johnson,
だから、このようにして$強さがテストされていますか?テストを1,2,4,8とします。1 2 4と8はどういう意味ですか?
追加された 著者 David Lawrence,
あなたが知っていなかったことは、何人かの男が私の気になる質問の半分を取り除いた原因が、おそらく "重複"の原因になるということです。
追加された 著者 David Lawrence,
@Zachありがとう芽..まだそれを理解していないが、病気だけエコーまたはprint_r私は行うまで関数のすべてのステップ..
追加された 著者 David Lawrence,
@Zach yeaコードはかなりの人が私が持っていたフォローアップの質問に答えるのを助けてくれるでしょう。それが削除されて本当に迷惑だった。再度、感謝します
追加された 著者 David Lawrence,
OkHHHHHHHHHHHHHHHHHHHHHHHHHHHだから8は4番目のビットがセットされていることを意味し、4は3番目になるという意味です! OK!わかった。ありがとう! Btwのビットが4よりも上に行くのですか?私がしたように16のwouldntは、8番目のビットが設定されることを意味する?
追加された 著者 David Lawrence,
はい、VB.Net(と私は正しく覚えている場合は、以前のVBの)を除いて、それは文字列の連結演算子です。
追加された 著者 Kibbee,
1,2,4、および8に対するテストは、 $ strength の1番目、2番目、3番目、4番目のビットが設定されているかどうかを確認することを意味します。
追加された 著者 Jan Pöschko,
x&16 は5番目のビット(バイナリで 16 = 2 ^ 4 = 10000 )をテストします。もちろん、より高いビットをそれに応じてテストすることができます。通常、整数は32ビット(符号付き)のサイズです。
追加された 著者 Jan Pöschko,

& is the bitwise AND operator. It sets bits that are in both numbers that are tested.

Example: 6 & 4

6 ->     1 1 0
4 ->     1 0 0

6 & 4 -> 1 0 0 -> 4
6 & 4 = 4

Example: 13 & 10

13 ->     1 1 0 1
10 ->     1 0 1 0

13 & 9 -> 1 0 0 0 -> 8
13 & 9 = 8
0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com