• ベストアンサー

お世話になっております。

お世話になっております。 PHPのif文について質問なのですが、 凡ミスなのか、完全に違ってるのか 自分ではもう分からなくて質問しました! $aaa=5; if(($aaa) != (1 or 2 or 3 or 4)){ print "違うよ"; } $aaaの値が1、2,3,4ではないときはとしたいのですが、 orがうまく効きません。 if(($aaa) != (1)){ print "違うよ"; } これはプリントが出ます。 orの書き方間違ってますか? よろしくお願いします!

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

  • ベストアンサー
回答No.2

orは論理演算子というものですので、その書き方では質問者がしたいことはできません。 1) $aaaが1でない、且つ2でない、且つ3でない、且つ4でない if (($aaa != 1) && ($aaa != 2) && ($aaa != 3) && ($aaa != 4)) { 以下、参考まで。 2) $aaaが1より小さい、又は4より大きい if (($aaa < 1) || (4 < $aaa)) { 3) $aaaが1以上且つ4以下、ではない if (!((1 <= $aaa) && ($aaa <= 4))) {

debun_2009
質問者

お礼

参考にさせてもらって、無事解決できました! ありがとうございます!

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

その他の回答 (1)

  • luka3
  • ベストアンサー率74% (311/417)
回答No.1

残念ながら間違ってます。 or は論理演算子です。 えっと、うまく説明できないので、手っ取り早く次の文で型と値を表示してみましょう。 print var_dump((1 or 2 or 3 or 4)); 結果は bool(true) と出ました。 ということは if(($aaa) != (1 or 2 or 3 or 4)) は if(($aaa) != true) と解釈できるでしょう。 従ってこのif文が成立するのは $aaa=0 など false と同じと見なされる場合だけです。

debun_2009
質問者

お礼

参考にさせてもらって、無事解決できました! ありがとうございます!

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

関連するQ&A

  • PHPのif文について質問なのですが、

    PHPのif文について質問なのですが、 凡ミスなのか、完全に違ってるのか 自分ではもう分からなくて質問しました! $aaa=5; if(($aaa) != (1 or 2 or 3 or 4)){ print "違うよ"; } $aaaの値が1、2,3,4ではないときはとしたいのですが、 orがうまく効きません。 if(($aaa) != (1)){ print "違うよ"; } これはプリントが出ます。 orの書き方間違ってますか? よろしくお願いします!

    • ベストアンサー
    • PHP
  • MQLの勉強しているのですがエラーが出ます②

    int aaa = ; void OnTick() { if((aaa < 10 ||aa.20) && aaa<30) { Print("aaa=0~9 or aaa=21~29 aaa=".aaa); } else if(aaa >=10 && <- 20) { Print("aaa=10~20 aaa=",aaa); } else { Print("aaa=30 aaa=".aaa); } aaa++; } たったこれだけのコードですが今度はエラーが10コでてきます。 でも今度は理由がなんとなく判ります。 0~9のプログラム上の表示の仕方が間違っているのだと 思います。  しかしどこを押せばいいか判らないのです??

  • $GETが取得できない場合に指定の値を使う

    PHPでURLから変数を取得できるGETというのがありますがURLにこの値が指定されていない場合に指定した値を使うことは可能でしょうか? つまりこういうことです。 $aaa = $_GET['bbb']; としている場合にURLを ~/index.php?bbb=0000 とした場合は aaa=0000 となりますが、 ~/index.php としかしなかった場合はaaaの値は取得できずにエラーになってしまうため、このaaaの値を強制的に1111に指定し aaa=1111 としてphpプログラムを続行させたいのです。 そのようなことはできますか?

    • ベストアンサー
    • PHP
  • マッチしなかった時の値を取り出したい

    perl5.8.5を使っています。 次のような形で$1の値を表示させたいのですが(そのまま$strを表示させれば良いとは思いますが、とりあえず) $str = "aaa"; if ($str !~ /^(bbb|ccc|ddd)/) { print "t=".$1; } これだと$1に値が入ってきません。 この場合はどのようにすれば$strの「aaa」を取り出すことができるのでしょうか?

    • ベストアンサー
    • Perl
  • XPATHについて

    現在if文でカレント(AAA)以降のすべての兄弟要素の要素名のなかにAAAが存在するかを調べたいのですがどのようなif文にすればいいのでしょうか? <xsl:if test="name(?????='AAA')"></xsl:if> sample.xml <root> <AAA/>※カレント <BBB/> <CCC/> <AAA/> </root>

    • 締切済み
    • XML
  • Webサービスの参照渡し

    PHP初心者です。調べても有効な情報が得られなかったので質問します。 PHP(5.2.6)から(VB.NET2008で作成した)Webサービスを呼び出したのですが、 引数が値渡しになっているらしく、Webサービスで設定した値が返ってきません。 参照渡しにするにはどうしたらいいのでしょうか? -------------------------------------------------------------- ***[PHP]********************************** <?php $client = new SoapClient("http://IPAdress//WebSv.asmx?WSDL"); $AAA = "AAA"; $params = array('rAAA'=>$AAA); $result = $client->__soapCall("ATOB", array('parameters' => $params)); print_r($AAA); ?> ****************************************** ***[Webサービス]************************** <WebMethod()> _ Public Sub ATOB(ByRef rAAA As String) rAAA = "BBB" End Sub ****************************************** -------------------------------------------------------------- PHPを実行すると BBB と表示させたいが AAA と出てくる。 ちなみに呼び出し自体はうまくいっていて、エラーにもなっていません。

    • ベストアンサー
    • PHP
  • MQLの勉強しているのですがエラーが出ます?

    int aaa=o; void OnTick() { if( aaa>10) { aaa = o; } Print("aaa=",aaa); aaa=aaa+1; } たったこれだけの短い練習コードなのですがエラーが出ます? ;や{}もチェックしたのですが何がおかしいでしょうか? 参考文献 https://jidoubaibai.com/kouza/nyumon/part3/

  • PHPの記述につきまして

    PHPの記述につきまして <? echo $kansu; ?> と記載されている $kansu の値が 定型でaaa1,aaa2,aaa3といった aaaと数字で構成されています。 そこで echo で書きされる値から aaa を削除して、数字部分だけを echoで書き出したいのですがどのように記述すればよいでしょうか? シンプルな記述方法をご教授いただけましたら幸いでございます。

    • ベストアンサー
    • PHP
  • foreachの実行結果について

    お世話になります。 以下のソースの実行結果が自分のトレースしたのと何故違うのか頭を抱えています。 ご指導よろしくお願いします。 <?php $arr=array(array(100,200),array('aaa','bbb','ccc')); foreach($arr as $foo){ print "*****\n"; foreach($foo as $var){ print $var ."\n"; } } ?> <自分の答え> ***** 100 ***** 200 ***** aaa ***** bbb ***** ccc <正解> ***** 100 200 ***** aaa bbb ccc 正解の回答に納得が行かないのです… foreach文がネストしてて内側のforeachの処理が一回終了してから 外側のforeachにいくものだと自分は思っています。 違うのでしょうか?

    • ベストアンサー
    • PHP
  • オブジェクト参照がオブジェクト インスタンスに設定されていません  というエラーについて

    タイトルの「オブジェクト参照がオブジェクト インスタンスに設定されていません」についてですが、 このエラーは、 null を参照しようとして例外が発生している エラーだと解釈しているのですが、nullでないのに、このエラーが出る場合はどのように対処すればいいのか教えてください。 下記のような文があるとします。 Dim aaa as String 'aaaは、データベースからデータをとってきています。 If aaa IsNot DBNull.Value Then DropDownList.SelectedItem.Text = aaa.TrimEnd 'ここでエラー End If aaaは、NullではないのでIf文の中に入っていくのですが、DropDownListにデータを入れようとすると、タイトルのようなエラーが発生します。 デバッグでaaaの値を見ても、ちゃんとデータが入っているし、Nullではないのですが、なぜこのようなエラーが出るのかわかりません。 このエラーは他に違う意味があるのでしょうか? また、他に影響している部分があるのでしょうか? どなたか教えてください。 よろしくお願いいたします。