- ベストアンサー
if文について
次のようなコードがあった場合、常に戻り値は false になってしまうのですが、$xxxが返る時もあるのでしょうか? というか、これはあるサンプルを簡単にしたものなのですが、$xyz==falseが真の時、$xxxが返っています。 どう考えたらいいのでしょうか? function abc(){ if($xyx==false){ return $xxx; } return false; }
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
下記のように xyzがfalse が真であれば 戻り値はxxx そうでなければ 戻り値はfalseと 読み替えることができるので補足の記述と 質問の記述は同様であるといえます。
その他の回答 (4)
- pokepotto
- ベストアンサー率31% (21/67)
あっと、こう書いたほうがわかりいいですね。 修正します。 (1)条件を判定、xyzがfalseが真なら(2)が実行される >修正 (1)条件を判定、xyzがfalseが真なら (2)xxxを返し、関数を抜ける
- pokepotto
- ベストアンサー率31% (21/67)
補足に解答しますね。 同様と考えていいです。 以下、参考になるでしょうか? function abc(){ if($xyx==false){(1) return $xxx;(2) } return false;(3) } (1)条件を判定、xyzがfalseが真なら(2)が実行される (1)の判定xyzがfalseが真でないのなら、そのまま if文を抜け(3)が実行される
- GuruGuru22
- ベストアンサー率51% (177/346)
>$xyz==falseが真の時、$xxxが返っています。 > if($xyx==false){ えーと、変数名が違ってるのが 原因じゃないよね。
補足
その先に$xyzに値を取得するプロセスがあって、その際に、データファイル(txt)から、配列を取り込んでいるようです。 データがあれば、そのデータ、なければfalseを返すようになっていました。
- pokepotto
- ベストアンサー率31% (21/67)
>次のようなコードがあった場合、常に戻り値は false になってしまうのですが、$xxxが返る時もあるのでしょうか? もちろん、あります。$xyx==falseが真のときです。 常に戻り値がfalseになってしまうということは if文の条件が満たされて$xxxを返すことがないということです。 if文の条件を満たしてあげれば$xxxは返ります。
補足
次の意味と同じなんでしょうか? function abc(){ if($xyx==false){ return $xxx; }else{ return false; }
お礼
わかりました。 ずーっとVBをやっていたもので、感覚がよくつかめませんでした。 VB的に考えると、どっちに転んでも、(3)が実行されると思うんですよね。 むしろ、偽の時の処理を else で分岐させた方が読みやすいかなーっと思いましたが、今後は慣れていかないといけないですね。