• ベストアンサー

phpでif文内で&の記述に疑問が・・・

とあるphpを見ていると、 $num = 90; $hom = 4; $list = '<rock>sale</rock>'; if(intval($num) & $hom && preg_match("/^<\/rock>$/", $list)){ ・・・ } というif文がありました。 これはどういった意味でしょうか? intval、preg_matchは理解できます。 また論理演算子の&&も理解できます。 $homeの直前にある&の働きがよくわかりません。 if文を日本語で直訳するとどういった意味になるのでしょうか? よろしくお願い致します。

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> intval($num) & $hom $numの下位第3ビットが1ならば真。

参考URL:
http://www.php.net/manual/ja/language.operators.bitwise.php
noname#225112
質問者

お礼

なるほど! ビット演算子なのですね。 ありがとうございました。

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

関連するQ&A

  • phpのswitch文について switchはif

    phpのswitch文について switchはifと違って、条件式の中がブール型の論理演算とかではないんですか? 完全に1つの値とかなんですかね? $num1>5とかそういうのは入らないんですか?

    • ベストアンサー
    • PHP
  • if文でチェックしている内容を教えてください

    メールアドレスをチェックしているif文ですが どんな内容をチェックしているのでしょうか? if (preg_match('/^([a-z0-9_]|\-|\.|\+)+@(([a-z0-9_]|\-)+\.)+[a-z]{2,6}$/i', $mailaddress))・・・

    • ベストアンサー
    • PHP
  • ifのついた疑問文

    例えば『もし100万円もっていたら、車が買える。』という文があります。これは “If I have 1 million yen, I can buy a car.”と言えますね。『もしいくらもっていたら、車が買えるか?』という疑問文は特別おかしな日本語でもないと思います。これを全く直訳的に “If I have how much money, can I buy a car?”としたら、意味は通じるが全くおかしい、意味も通じないくらいおかしい、たいしておかしくない、どなたか説明してください。

  • javascript if文

    javascript if文 まずソースコードなのですが var num; var sign; num = 20; (1)sign = num >= 0 ? '正' : '負'; console.log( num + "は" + sign ); (2)if(num >= 0){ console.log( num + "は" + sign ); } (1)と(2)は同じ意味なのですか?(1)のやり方はあまり見かけないのですが用途としてはどのような時に使うのですか? 馬鹿な質問でスミマセン。

  • if-else文および標準演算子(*/+-%)の入力方法

    度々失礼します。 C言語超初心者のものです。QNo.3392139(回答してくださった皆さんありがとうございます。)でも質問させていただきましたが、詳細が足りないようなので、 ここで再度質問をさせていただきます。 プログラミング内容 (1)Enter first integer: 17 [好きな数値選択] (2)Enter operator:(*/+-%) [好きな演算子選択] (3)Enter second integer:5 [好きな数値選択] というように数字・標準演算子・数字の順でキーボードから入力し、 (4)17 / 5 = 3 を(1)~(4)までDOS画面?上に表示させるものです。 そして、if-else文を作成して、以下のようにプログラムを組んでみたのですが(標準演算子は”/”を選択するようにしています)、 else文のところで”parse erro before 'else' ”というエラーが出てしまいます。このエラーがなくなれば、プログラムはうまく起動すると思うのですが・・・。 どこが悪いのでしょうか? まあ、超初心者なので、使える言語はint、float、char、そして関数はscanf、if-else文、位です。 int main() { int num1, num2, num4, num5, num6; char chr; printf("Enter the first integer: "); scanf("%d",&num1); scanf("%c",&num5); printf("Enter an operator (* / + - %): "); scanf("%c",&chr); scanf("%c",&num6); printf("Enter the second integer: "); scanf("%d",&num2); if(chr == '/') num4 = num1 / num2; printf("%d / %d = %d\n", num1, num2, num4); else printf("Can not\n"); system("pause"); return 0; } 大変皆さんお忙しいとは思いますが、出来たらお願いします。 査閲ありがとうございます。

  • 演算子について

    phpで、ピリオド(.)は結合演算子に使いますが , は(読み方がわかりません)何に使いますか? if($num1,$num2) のような書き方だとどのような意味になりますか?

    • ベストアンサー
    • PHP
  • IPアドレス拒否処理の正規表現とstr_repla

    下記のようなサンプル(の一部)があるのですが、IF文の条件式の意味が分かりません。 while ( $out = $db->fetch_result($result) ) {  $out['ip_addr'] = stripslashes($out['ip_addr']);  if ( !$ip_banned && preg_match('#^'.str_replace(array('\*', '\?'), array('[0-9]*', '[0-9]'), preg_quote($out['ip_addr'])).'$#', $ip_addr) )  $ip_banned = true; 分解してみました。 ・if ( A ) ・A … !$ip_banned && B ・B … preg_match('#^'.C.'$#', $ip_addr) ・C … str_replace(array('\*', '\?'), array('[0-9]*', '[0-9]'), preg_quote($out['ip_addr']) クオートしたIPアドレスに、「*」か「?」があれば、「数字*」か「数字」に置き換える? さらに、その結果が、$ip_addrの中に、当てはまるか、確認? 意味が分かりません……。 IF文の条件式で、何をしようとしている(と想定される)か、教えてください

    • ベストアンサー
    • PHP
  • PHPで$_ENVを使うと警告が出る

    《環境》 Windows 7 SP1 XAMPP 5.6.3.0 Apache 2.4.10 MySQL 5.6.2 PHP 5.6.3 phpAdmin 4.2.11 稼働環境がWindowsかどうかを確認するために if (preg_match("/Windows/", $_ENV["OS"])) というif文を入れると、実行時に Notice: Undefined index: OS in C:\localhost\form.php on line nn という警告が出ます。処理は実行しているようですが気になります。 何が悪いのでしょうか? 環境でメッセージの表示をOFFにしてしまえば消えるとは思いますが、警告を残しておくのは気色悪いので消したいと思います。 よろしくお願いします

    • ベストアンサー
    • PHP
  • PHPで日付の入力内容をチェックするには

    PHP初心者です。 テキストボックスに入力された発売日をチェックしてMySQLのDATATIME形式の発売日のフィールドにデータを突っ込むプログラムを組んでいるのですが 1、DATATIMEは4-2-2の形式なので、この通りかチェックしたい 2、発売日が不明な場合は空欄でもOKにしたい 3、入力はされているが4-2-2の形式以外の場合はエラーメッセージを出したい 4、入力された数値が4-2-2の形式でも存在しない日付の場合もエラーメッセージを出したい 以上のことを踏まえて if ($_POST['sale'] == '') { $error['sale'] = 'black'; <input type="text" name="sale" size="10" id="sale"> <?php $sale = mb_convert_kana($_REQUEST['sale'], 'a', 'UTF-8'); if (preg_match("/^\d{4}\-\d{2}\-\d{2}$/", $sale)) { echo htmlspecialchars($_POST['sale'], ENT_QUOTES, 'UTF-8'); } else if ($error['sale'] == 'blank') { echo htmlspecialchars($_POST['sale'], ENT_QUOTES, 'UTF-8'); } ?> 1、2までは何となくできたのですが3のエラーメッセージを出す場合CSSで文字の色を変えたいので <p class="error">* 発売日は 空欄 もしくは 2010-01-01 の形式でご記入ください</p> HTMLでこれを入れる場合、どのようにプログラムを組めばよいのでしょうか? 単純に考えれば if ( ) { } else if ( ) { } else { } みたいな感じになると思うのですがそうするとPHPの中にHTMLを記述しないといけなくなります。 自分はまだPHPの中にHTMLを記述する方法は知りません。 また、4の機能も付ける場合どのようにプログラムを組めばよいかわかりません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • preg_match( '/^(\D+)(\d*)$/' , $変数 , $regs )

    if( ! preg_match( '/^(\D+)(\d*)$/' , $変数1 , $regs ) ) { echo ( 'invalid dirname: ' . htmlspecialchars( $変数1 ) ); } $変数2 = $regs[2] === '' ? '' : intval( $regs[2] ) ; 正規表現だと思うのですが、どういう意味か教えてください。 □分からないなりに考えてみました… ▽1行目 $変数の内容が、'/^(\D+)(\d*)$/'にマッチしなければ、$regs へ代入。 ▽2行目 マッチしていた場合は、htmlspecialchars関数を実行した後、'invalid dirname: '+その結果を表示する。 ▽3行目 $regs配列変数の1番目を、何かして、$変数2 へ代入する。 ……誰か教えてください…。

    • ベストアンサー
    • PHP