• ベストアンサー

if文について

次のようなコードがあった場合、常に戻り値は false になってしまうのですが、$xxxが返る時もあるのでしょうか? というか、これはあるサンプルを簡単にしたものなのですが、$xyz==falseが真の時、$xxxが返っています。 どう考えたらいいのでしょうか? function abc(){   if($xyx==false){     return $xxx;   }   return false; }

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

  • ベストアンサー
  • pokepotto
  • ベストアンサー率31% (21/67)
回答No.5

下記のように xyzがfalse が真であれば 戻り値はxxx そうでなければ 戻り値はfalseと 読み替えることができるので補足の記述と 質問の記述は同様であるといえます。

その他の回答 (4)

  • pokepotto
  • ベストアンサー率31% (21/67)
回答No.4

あっと、こう書いたほうがわかりいいですね。 修正します。 (1)条件を判定、xyzがfalseが真なら(2)が実行される >修正 (1)条件を判定、xyzがfalseが真なら (2)xxxを返し、関数を抜ける

  • pokepotto
  • ベストアンサー率31% (21/67)
回答No.3

補足に解答しますね。 同様と考えていいです。 以下、参考になるでしょうか? function abc(){   if($xyx==false){(1)     return $xxx;(2)   }   return false;(3) } (1)条件を判定、xyzがfalseが真なら(2)が実行される (1)の判定xyzがfalseが真でないのなら、そのまま if文を抜け(3)が実行される

abcxyz3000
質問者

お礼

わかりました。 ずーっとVBをやっていたもので、感覚がよくつかめませんでした。 VB的に考えると、どっちに転んでも、(3)が実行されると思うんですよね。 むしろ、偽の時の処理を else で分岐させた方が読みやすいかなーっと思いましたが、今後は慣れていかないといけないですね。

回答No.2

>$xyz==falseが真の時、$xxxが返っています。 >  if($xyx==false){ えーと、変数名が違ってるのが 原因じゃないよね。

abcxyz3000
質問者

補足

その先に$xyzに値を取得するプロセスがあって、その際に、データファイル(txt)から、配列を取り込んでいるようです。 データがあれば、そのデータ、なければfalseを返すようになっていました。

  • pokepotto
  • ベストアンサー率31% (21/67)
回答No.1

>次のようなコードがあった場合、常に戻り値は false になってしまうのですが、$xxxが返る時もあるのでしょうか? もちろん、あります。$xyx==falseが真のときです。 常に戻り値がfalseになってしまうということは if文の条件が満たされて$xxxを返すことがないということです。 if文の条件を満たしてあげれば$xxxは返ります。

abcxyz3000
質問者

補足

次の意味と同じなんでしょうか? function abc(){   if($xyx==false){     return $xxx;   }else{     return false; }

関連するQ&A

専門家に質問してみよう