• ベストアンサー

if($a & $b) の意味

phpでコーディングをしていますが、 初心者なので、よろしくお願いします。 コーディングの修正をしていますが、 if($a & $b) { 処理 } というコードが書かれたif文があり、 ifの()内の意味がわかりません。 C#では大体わかるのですが、 == なのか  != なのか インターネットで調べてもわからないので、 $a & $bの意味を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • _chihiro_
  • ベストアンサー率63% (26/41)
回答No.1

>> if($a & $b) ビット演算です。 Wiki: http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97 if ($a & $b) の場合だと、変数$a と $b の論理積の結果が > 0 なら処理を行うという意味です。

参考URL:
http://ja.wikipedia.org/wiki/%E3%83%93%E3%83%83%E3%83%88%E6%BC%94%E7%AE%97#AND
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

&はビット積演算子だそうです。 きっとビットマスクの処理だと思います。たとえばデータベースの 中で論理値を取るいくつかの項目をまとめてビット列で表した フィールドがあって$aに代入されている時に、$bに00100000を代入 してビット積を取ると、左から3番目のビットが立っている時にTRUE になるはずです。

参考URL:
http://php.benscom.com/manual/ja/language.operators.bitwise.php
全文を見る
すると、全ての回答が全文表示されます。
回答No.2

理論積ですかね? 「$aおよび$bの両方が1であれば1」とかそういう意味だったと思いますが・・・。 ちょっと自信無いので「理論積 PHP」か「ビット演算子 PHP」とかで検索を掛けてみてください。 すみません・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語 b += a ? 1 : 0; の意味

    C言語を勉強中 b += a ? 1 : 0;  という1文があり??な状態になってしまいました。(+=、?:の意味はわかります。おそらく。) これは aが0以外ならb=b+1;、aが0ならb=b+0; (aは条件であり、bにたされるわけではない。)。if文より文が短く、処理も早い、という利点。 で間違いないですか? 自信を持って次に進みたいので、どなたか教えていただきたいと思います。お願いします。

  • ifの条件式 Andを使用するものについて

    phpで、 $a="あいうえお"; $b="かきくけこ"; $c="かきくけこ"; と変数を三つ宣言しました。 上の変数三つを利用して、以下条件のif文を作りたいと思いました。  条件:$a変数 と $b変数が異なり、かつ $b変数 と $c変数の内容が同じとき「処理A」を実行させる。 ○作成したif文 if(($a <> $b) && ($b == $c)){  処理A } と記述したのですが、 ifブロック処理Aが実行されません。 なぜなのでしょうか…。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • if文の使い方について

    if文でaの値とbの値とcの値が一緒なら次の処理を行うものを作成したいのですが。 if($a==$b==$c){ 行いたい処理 }else{ その他の処理 } と書いたのですが、ダメで if($a=$b=$c){ 行いたい処理 }else{ その他の処理 } と書いたのですが、これもダメでした。 if($a==$b) {  if($b==$c)  {    処理   }else{     その他の処理   } }else{ その他の処理 } と書かいたら実行されたのですが、このように分けて書かないとダメなのですか? いいやり方がありましたら教えてください

    • ベストアンサー
    • PHP
  • if文の中で否定演算子を使うことについて

    PHPの勉強をしています。 今、基礎的な内容の本とより実践的な内容の本、コードサンプルが満載の本の 計3冊で勉強しておるのですが、 たまたまなのかわかりませんが、この三冊の中ででてくるコードを見てみると、 if文の中に否定演算子、例えば IF(!A || !B) {   A、もしくはBがfalse だったのが反転してTrueになった場合の処理 }else {   A、Bどちらともtrueだったのが反転してfalseになった場合の処理 } といった条件文に否定演算子を含めたコードサンプルがほとんどです。 。。。。三冊ともこの調子なので もしかしてPHPのコーティング作法なのかな?と思いましたが ネットで検索してもそれらしい情報は見当たらず...... 自分が何がわからないのか それ自体よくわかってないのかもしれませんが IF文を使う際、条件に否定演算子を使うべきときってのがあるんだと思います。 となると、その時を判断する基準などがあるのでしょうか? 初心者なのでなにか重大な思い違いをしてるのではないかと思ってます。 なにか気づくことがあれば教えてください。

    • ベストアンサー
    • PHP
  • IF(B1="","",A1*B1)の合計

    セルC1に次の計算式が入っています。 IF(B1="","",A1*B1) 行9までコピーされています。 C10のセルで SUM(C1:C9) で合計したいと思っています。 B列に空白がある場合、 #VALUE!のエラーとなります。 IF(B1="","",A1*B1) の計算式を残したままで 解決方法はありませんか?

  • IF(B1="","",A1*B1)の合計

    セルC1に次の計算式が入っています。 IF(B1="","",A1*B1) 行10までコピーされています。 列Cを =C2+C4+C6+C8+C10 のうように個別に加算したいと思っています。 B列に空白がある場合、 #VALUE!のエラーとなります。 IF(B1="","",A1*B1) の計算式を残したままで 解決方法はありませんか?

  • #ifの意味

    こんにちは。今コードの解析をしているのですが、 #If ●● Then   処理内容 #Else   処理内容 #End If   というようなコードがあるんですけど、#ってなんの意味があるのでしょうか? おわかりなる方がいらっしゃいましたら教えてください。 宜しくお願い致します。

  • エクセルIF関数で0~50は"A" 51~100は"B" 0~-50は"a"  -51~-100は"b"というような式を作りたいです。

    エクセル初心者で、書籍を買って勉強しておりますが、どうしても上手く出来ず困っております。 単純なIFは理解出来ましたが、応用力がなく作業がストップしてしまいました。どうか教えて下さい。 私が、作りたいのは、 セル番号が 0~50 "A" 51~100 "B" 101~150 "C" 151~200 "D" 200以上 "E" 0~-50"a" -51~-100"b" -101~-150"c" -151~-200"d" -200以下 "e" このように表示させるのは可能でしょうか?

  • if文の中のif文・・・について

    質問させていただきます。 if文の中のif文の記述の仕方について質問があります。 例えば if ( x > 0 ){ a = b+c; if ( a > 1) d = e+f; ・・・1 if ( a < 1) d = e-f; ・・・2 if ( a = 1 ) d = 1-g; ・・・3 } h = d + i; aが1より大きい場合は、1の処理を、aが1より小さい場合は2の処理を、aが1と同じであった場合、3の処理をして最終的に、h = d + i;の式の d に代入して h を求めたいと思っているのですが、うまくゆきません。 if文の中のif文の記述はどのようにすればよいのでしょうか? よろしければご教示よろしくお願いします。

  • if(A1&B1="","なし"

    A1とB1の両方に何も入力されてなければ、C1に「なし」を表示し、片方に何か入力されていれば、「不十分」と表示し、両方に何か入力されていれば、「あり」と表示するにはどうすればいいですか? =if(A1&B1="","なし"・・・みたいに、A1&B1みたいな表現はできますか*