- ベストアンサー
PHPでのgoto文の実現方法
皆様のお知恵をお貸しください。 C言語やVBでは何かの処理を行って、継続不能なエラーが発生した場合は終了処理へ飛ばすようなgoto文(俗に言うgoto done)があります。 PHPではgoto文がサポートされていないようなのですが、皆様はphpでgoto doneを実現する場合どのような方法をとられていますか? 現在、私が思いつくのは終了関数を作って、その中でexit()することくらいなのですが、もっとgoto doneに近くてよい方法は無いものでしょうか? ※余談ですがリリース予定のPHP6からはgoto文が利用できるようですね。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- GOTO命令のようなことをPHPで
PHP4とmySQLで、以下のことがしたいのですが ・数字3文字の乱数を生成する ・DBに同じ値がないかチェックする ・同じ値が既にDBにあったときは乱数を生成するところからやり直す ・なければDBに書き込んで処理終了 ※DBには オートインクリメントのID | 乱数 の2フィールドを使用 ※乱数はintではなくvarcharとして書き込む PHPにgoto命令がないので、スマートなやり方ご存知の方いらっしゃいましたら教えてください。 あと数字3文字の組み合わせなので、DBに値が1000個入っているとそれ以上書き込めないので処理の中止(exit)を行いたいのですが、どこで分岐したものか悩んでますので、併せてご指導いただければ幸いです。 $rand1 = (0,99); $rand2 = (0,99); $rand3 = (0,99); $abc = $rand1.$rand2.$rand3. $sql = //省略 $result = $sql; if($abc == $result){ //重複アリ:この中の処理をどうするとスマートなのか、、、} elseif{ //重複してないのでDBに書き込みます }
- ベストアンサー
- PHP
- Gotoを使わずに済みますか?
VBA超初心者です。ヘルプだけで学習していますが、よくわかりません。印刷する時に、GT4かGU4の値が0の場合はエラーメッセージが出て終了し、いずれも0以外ならばその数値を印刷の開始と終了ページとして取得するプログラムを作ってみましたが、何度やってもうまくいかず、やむなく昔ベーシックで習ったGotoを使ってみました。 しかし、過去ログを見ると、Gotoは使わないほうが良いとの事。 この文でGotoをなくす方法をご教授下さい。お願いします。 Sub 印刷() 開始ページ = Range("GT4").Value 終了ページ = Range("GU4").Value If Range("GT4") = 0 Then GoTo 10 If Range("GU4") = 0 Then GoTo 20 入力結果 = MsgBox((開始ページ) & "ページから" & (終了ページ) & "ページを印刷しますか?", vbYesNo) If 入力結果 = vbYes Then ActiveWindow.SelectedSheets.PrintOut From:=開始ページ, To:=終了ページ, Copies:=1, Collate _ :=True GoTo 30 10: MsgBox ("未入力の項目があ~る!") GoTo 30 20: MsgBox ("入力ミスがあります!") 30: End If End Sub
- ベストアンサー
- Visual Basic
- PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか?
PHPのif文でその処理を途中で抜けるにはどうすればよいでしょうか? for文やwhile文ではbreakやcontinueなどが使えるようですが、if文にはないのでしょうか? 条件分岐がいくつかあって、その一つを途中で抜けて次の条件分岐へと移行したいのですが、 exitを使ってしまうと、次へ行かずに処理が中止されてしまいますし、 どのようにすればよいのか分からず困っています。何かよい方法はないでしょうか?
- ベストアンサー
- PHP
- GOTO命令
現在GOTO命令を用いて、処理をしようとしていますが、一つの関数内でGOTO命令はOKなのですが、GOTO命令先の関数が違う場合はGOTOは使えないのでしょうか? つまり Private Sub CommandButton1_Click() 処理 back: end Sub Private Sub CommandButton2_Click() 処理 goto back end Sub 上記のようにGOTOのラベルが他の関数内にある時はつかえないのでしょうか?何か方法ないでしょうか?
- ベストアンサー
- Visual Basic
- [VB2005]処理を完全に中止する方法を教えて頂けませんか?
VB2005で開発しています。 あるイベントからメソッドを呼び、そのメソッドも次のメソッドを呼ぶような 処理があるとします。 この場合に、最上位のイベント以外から、 このイベントの処理をすべて終了する方法はございませんか? 最上位のイベントであれば、 Exit Subと書けば、そのイベント内の処理はすべて終了されると思いますが、 それを、下位のメソッドで行いたいのです。 このようなことはできないのでしょうか? もし方法がございましたら、教えて頂きたいです。 ぜひ、よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- Do whileとFor文の脱出処理について
はじめまして。 VBについて素朴な質問なのですが For…Nextから抜けるにはExit for を使いDo…Loopから抜けるにはExit Doを使用しますが以下の場合はFor文の中でExit doを使用するのは可能なのでしょうか? Do while(条件) for i=1 to 12 if 条件 then exit do end if 処理1 next i 処理2 loop 本来ならfor文の中ではExit forを使用しますがfor文はDo while文 の中に含まれていますのでExit doでも出れると思ったのですがそうではないのでしょうか?ご回答よろしくお願いします。
- 締切済み
- Visual Basic
- DOSのIF文でつまづいています
DOSのプログラムでつまづいています。 test.batの中身 ************************************************ if %1==start goto start else if %1==stop goto stop else goto error :start rem スタート処理 echo start%1 > test.txt :stop rem ストップ処理 echo stop%1 > test.txt :error rem エラー処理 echo error%1 > test.txt exit ************************************************* うまく処理できる方法を教えてください。
- 締切済み
- その他(プログラミング・開発)
- シェルからPHPを実行したときの戻り値について
PHPについては、かなり初心者です。 とんちんかんな質問をするかもしれませんが、 ご容赦ください。 今、linux系のOSで、 シェルスクリプトからPHPを実行する処理を作っています。 「/usr/local/bin/php xxxx.php」 という感じです。 この戻り値を、「$?」で取得すると、 正常に終了した場合は「0」、 処理が落ちた場合は「255」 が表示されるようなのですが、 この戻り値について、0、255以外の値を戻したいと思っています。 PHP内部で、特定の条件に当てはまった場合は、「2」をreturnしたいと思っています。 そのreturn値を使って、シェルスクリプトでif文で、判定処理を行いたいのです。 シェルスクリプト側で、PHPでの処理結果を変数に受ける方法があれば、 必ずしも「$?」を使う必要はないのですが・・・、 「$?」で「2」を取得できるのが一番理想です。 何か方法をご存知の方がいらっしゃいましたら、 よろしくお願いします。
- ベストアンサー
- PHP
- bashで、gotoのようなラベルによるジャンプ構文をしたいのですが、方法をご教授ください。
bashで、gotoのようなラベルによるジャンプ構文をしたいのですが、方法をご教授ください。 今はif分毎で、エラー時にメール配信処理してますが、全て同じあて先配信なので、 簡潔に処理内容をまとめたいです。 echo "aaa" if [ $? -ne 0 ] then echo "error desu" > honbun.txt mailx -s "error" aaa@aaa.c.jp < honbun.txt exit 1 else echo "ok" fi echo "bbb" if [ $? -ne 0 ] then echo "error desu" > honbun.txt mailx -s "error" aaa@aaa.c.jp < honbun.txt exit 1 else echo "ok" exit 0
- 締切済み
- Linux系OS