関数から関数を呼び出したときのリターン処理について
- 関数から関数を呼び出す際に、リターン処理で問題が発生しています。
- 呼び出し元の関数がリターンされ、処理が停止してしまっています。
- chk()関数をTRUE、FALSEの判定に使いたい場合、どのようにすれば良いでしょうか?
- ベストアンサー
関数から関数を呼び出したときのリターン処理について
宜しくお願いいたします。 ユーザー定義関数からユーザ定義関数を呼び出す必要があり 以下の様にしてみたところ function chk($value) { if ($value>0) { return TRUE; } return FALSE; } function test(){ $a = 0; $b = -1; $c = 2; $txt = ''; if (chk($a)) { $txt .= 'aはhoge<br>'; } if (chk($b)) { $txt .= 'dはhoge<br>'; } if (chk($c)) { $txt .= 'cはhoge<br>'; } return $txt; } 最初の chk($a) で処理が終わってしまいます。 この場合 chk() の return が test() をも止めてしまっているのでしょうか? return で調べて見ると 呼び出し元のスクリプトに戻る というような解説だったので test() に戻って処理の続きをしてくれる と思ったのですがうまくいきません。 これを return $txt; まで処理させるにはどのようにしたらよいでしょうか? できれば chk() をTRUE、FALSEの判定に使いたいと思います。 何卒ご教授のほどよろしくおねがいします。
- tamaq
- お礼率100% (1/1)
- PHP
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>最初の chk($a) で処理が終わってしまいます。 なにをもって終わっていると判断しているのでしょうか? 何も表示されないのは戻り値を表示してないだけかと。 print test(); すると「cはhoge」が表示されますね?
関連するQ&A
- PHPのreturnについて
function hoge(){ if(条件){ return false; } 処理A; return true; } 上記のような場合if文内通ると、return falseするのでその後の処理Aは走らないですよね? 頭がこんがらがってきました・・・
- ベストアンサー
- PHP
- 本文ではなく、returnへほとんどの処理を記述
・本文ではなく、returnへほとんどの処理を記述しているコードがあります ・どういう意図があるのでしょうか? ・複数の関数をreturnする関数が、たくさんあります ・どの関数も、関数本文より、returnする関数内容の方が何倍も多いです hoge = function(){ //中略 return { a : function(){ }, b : function(){ //これが延々続く //return関数内で即時関数実行したり ■質問1 ・処理の結果をreturnすると思っていたのですが、returnメインでそこに処理を記述していくやり方のメリットは? ■質問2 ・hoge.aでアクセスしているのですが、関数定義=オブジェクト定義でしょうか? ・下記aメソッドは、同じ意味? hoge = { a: function(){ hoge = function(){ //中略 return { a : function(){ },
- 締切済み
- JavaScript
- VBのReturnの使い方
Excel2007のVBで以下のfunctionを定義すると、Returnのところでコンパイルエラーになります。 -------------------------------------- Public Function IsTen(lNumber As Integer) As Boolean If lNumber = 10 Then Return True Else Return False End If End Function -------------------------------------- ググってみるとReturn True とか Return False とかができるように思えるのですが、何が不味いのでしょうか? VBの知識はあまりなく、低レベルな質問かもしれませんが、よろしくお願いします。
- ベストアンサー
- Visual Basic
- return trueとreturn falseの用途・違いは・・・?
functionやifなどで「return true」「return false」というのを見かけますが、これの違いを教えてください。あと最近 if(!obj){ return true; } という文を見かけました。 これがifじゃなくてfunctionなら、ブール値が返るのでtrueとfalseの違いがありますが、このifではなぜreturn trueを使っているのか分かりません。「return false」を書くと、ifやfunctionを強制的に抜ける「break」と同じ役割を果たすと聞いた事がありますが、trueは知りません。 ・・・というより、ifでreturnを使う意味もよく分からなくなってきました。 if文は何も返りませんし、返したところで受け取る方法がありませんよね? これもどういう意味なのか、教えてください。 よろしくお願いします。
- ベストアンサー
- JavaScript
- VBAの比較処理においてバグ?
環境はVistaBusiness、Excel2003です。 以下のような比較処理をして条件を満たせばTrueを返す関数を作成しましたが 偶然このパラメータ(関数上は引数としてデータ取得)が入ってきた場合に Trueを返すようになってしまいました。 論理的に考えれば当然Falseになるのかと思うのですが なぜかTrueが返ってきます。 If 163.05 < 163.07 Then If 163.04 < (163.05 - 0.01) Then Chk = True Exit Function End If End If Chk = False 但しこの数字を下記のように変更すると意図するとおり Falseが返ってきます If 163.06 < 163.07 Then If 163.05 < (163.06 - 0.01) Then Chk = True Exit Function End If End If Chk = False これはバグなのでしょうか? お分かりになる方がいれば回答お願いします。
- ベストアンサー
- その他MS Office製品
- 関数への引数について
------------------------------------------------------------------ if(Check_Field(location.form.name.value,"名前") == false) return false; if(Check_Field(location.form.sex.value, "性別") == false) return false; if(Check_Field(location.form.address.value,"住所") == false) return false; ------------------------------------------------------------------ function Check_Field(target, msg){ txt = target; txt2 = txt.replace(/ /g, ""); txt2 = txt2.replace(/ /g, ""); if(!txt2){ alert(msg + " が未入力です。"); return false; } } ------------------------------------------------------------------ HTMLの入力項目(name, sex, address)の未入力チェックをしたいと 考えました。 Check_Field関数のパラメータのtargetに入力項目の情報(例:島田、男、東京都) を渡したいのですが、うまくできません。 かといってチェックする項目分関数の処理を大きくしたくありません。 どうぞ宜しくお願い致します。
- 締切済み
- JavaScript
- 関数の引数に未定義の変数を渡すとエラーが出る
自作の関数で、issetとemptyを一緒に判定する関数を作っているのですがエラーが出ます。 ある変数が「未定義」または「null」または「""(空白)」の場合はnullである、という関数を作りたいです。 ------------------------------------------ function is_null_ex($value){ if (!isset($value)) {return true;} // 未定義かnullの場合、trueを返す else if (strlen(strval($value)) === 0) {return true;} // 空白の場合はtrueを返す else {return false;} // $valueに値が入っている場合はfalseを返す } is_null_ex($val); ------------------------------------------ 上記の関数で$valueが未定義の場合にfuncを使うと、次のようなエラーが出ます。 Notice: Undefined variable: val つまり、未定義の変数を引数に渡すとエラーが出ます。 「未定義なら関数に渡さなければ?」と思うかもしれませんが、そもそもこの関数は「未定義」または「null」または「""(空白)」を判定したい関数なのです。 この場合、どうすれば良いのでしょうか? エラーは出ますが上記の関数で「if (!isset($value)) {return true;}」の部分できちんと判定はされています。 PHP5.3系で運用しています。 ぞうぞよろしくお願い致します。
- ベストアンサー
- PHP
- ユーザー定義関数の処理
エラーメッセージに関する以下の関数はどのような処理をする関数ですか? 自分なりに解釈したものを//で書いています。 // エラーがセットされているときは、$errorsを返す // もしセッション変数にエラーがないときは、空の配列を返す function get_errors(){ // セッション変数にエラーがセットされているときは$errorsを以下のように定義する $errors = get_session('__errors'); if($errors === ''){ return array(); } // もしセッション変数にユーザー名($name)がセットされているなら、セッション情報を返す // セットされていないときは空文字を返す function get_session($name){ if(isset($_SESSION[$name]) === true){ return $_SESSION[$name]; }; return ''; } // $nameと$valueを受け取り、セッション情報(ユーザー名)を$valueと定義する function set_session($name, $value){ $_SESSION[$name] = $value; }
- ベストアンサー
- PHP
- ラジオボタンの入力制御について(表示した時のみ制御を行う)
yesの場合はid=ABを表示し、noの場合はid=ABを非表示にする制御を行っています。 両方yesの場合は表示。両方noの場合は非表示。 片方がnullの場合は、yesで表示しnoで非表示としています。 ここまでの動作は、問題ないのですが id=ABを表示した場合、hoge3が入力必須となり id=ABを表示しない場合、hoge3は入力必須ではないように制御を行いたいと思っています。 他書き込みを参考にしたのと、自身で書いたものが混じって非常に汚くなっていますが ご教授願えませんでしょうか。 <script type="text/JavaScript"> <!-- function test1(){ if(document.getElementById("id01").checked) { document.getElementById('AB').style.display = ""; }else if(document.getElementById("id02").checked) { document.getElementById('AB').style.display = ""; for(i = 0; i <= 1; i ++){ document.form1.hoge3[i].checked = false; } }else{ document.getElementById('AB').style.display = "none"; for(i = 0; i <= 1; i ++){ document.form1.hoge3[i].checked = false; } } } //以下はhttp://oshiete1.goo.ne.jp/qa2119460.htmlを参考にしました function test2(f){ for (var i=0;i<f.length;i++){ if(f[i].type=="radio" && f[i].name=="hoge3" && f[i].checked==true) return true; } alert("AかBを選んでください"); return false; } //--> </script> <form name="form1" onload="test1()"onsubmit="return test2(this)"> <br> <input type="radio" name="hoge1" value="1" id="id01" onClick="test1();">yes<br> <input type="radio" name="hoge1" value="0" onClick="test1();">no<br> <br> <input type="radio" name="hoge2" value="1" id="id02" onClick="test1();">yes<br> <input type="radio" name="hoge2" value="0" onClick="test1();">no<br> <br> <p id="AB" style="display:none;"> <input type="radio" name="hoge3" value="1">Aへ進む<br> <input type="radio" name="hoge3" value="2">Bへ進む<br> </p> <br> <input type="submit" value="次へ"> </form>
- ベストアンサー
- JavaScript
- 関数からの関数の呼び出しは
下記のようなIF文の中で「URL」がカラならsend_check()を実行させたいのですが、→のところにどのように記載したらよいか教えていただけないでしょうか。 また、関数から関数へいくらでも呼び出していけるものですか。質問の仕方もよくわからないのですが、よろしくお願いいたします。 function submitCheck(){ if (document.mail.url.value==""){ →→→→ return false;} else return true; }
- ベストアンサー
- JavaScript
お礼
>何も表示されないのは戻り値を表示してないだけかと。 ご指摘ありがとうございます。 実際のプログラムでうっかりミスをやってました。 こんなアホな質問に答えていただき本当にありがとうございました。