exitの使い方について

このQ&Aのポイント
  • exitは言語構造であり、プログラムの実行を終了させるためのものです。
  • exitは括弧ありでも括弧なしでも使用することができます。
  • 終了ステータスを指定しない場合、0から254までの終了ステータスは表示されず、メッセージを出力することができます。
回答を見る
  • ベストアンサー

exit exit(); 言語構造

exitの使い方が良く分かりません。 >exit は言語構造です 言語構造って何ですか? >status を指定しない場合は括弧なしでコールできます と書いてありますが、 下の方の例2 // 正常終了 exit; exit(); exit(0); exit();ということは、 status を指定しない場合は括弧ありでもコールできる、 ということでしょうか? つまり、下記3つは、何れも同じ意味、ということでしょうか? exit; exit(); exit(0); また、「0 から 254 までの終了ステータスは表示されない」、とのことですが、 具体的にどうやって使うのでしょうか?(取得するのでしょうか?) メッセージを出力、と書かれているので、 終了ステータスに応じて、画面には表示させずに、メッセージをログなどに残せるのでしょうか? ▽PHP: exit - Manual   http://jp.php.net/manual/ja/function.exit.php

  • re999
  • お礼率61% (476/777)
  • PHP
  • 回答数2
  • ありがとう数5

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

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

>メッセージを出力、と書かれているので、 出力(表示)になるのはstatusが文字列の場合のみです。整数(0~254)の場合は出力されません。整数値の場合、一般的なプログラムの終了コード同様(そのphpスクリプトを)起動したプロセスでチェックすることになります。

re999
質問者

お礼

回答ありがとうございました。 大変参考になりましたー

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4847/10260)
回答No.2

>言語構造って何ですか? if とか for とか return のような物です。echo もですね。 >status を指定しない場合は括弧ありでもコールできる、ということでしょうか? >つまり、下記3つは、何れも同じ意味、ということでしょうか? そうです。 後半はNo1の方が書いているので略。

re999
質問者

お礼

回答ありがとうございました。 >そうです。 参考になりましたー

関連するQ&A

  • PHP5で exit; や exit();と引数なしの場合、停止するの

    PHP5で exit; や exit();と引数なしの場合、停止するのはわかりますがその他の振る舞いはどうなるのでしょうか? ネットで調べましたが引数なしの振る舞いは見つけられませんでした。 数値なら終了ステータスを返して停止 文字列なら表示して停止 引数なしなら??? あと、ネットで検索して思ったのですが、体裁は異なるが同じような内容のマニュアル解説がありますが、これは他のページを真似たものでしょうか? 解説が同じで、前に見たページといつも思います。

    • ベストアンサー
    • PHP
  • exitってどう使うの?

    exitを使いたいのですが、プログラムが終了しません。 コンパイルも通りません。 警告:コードは効果を持たない(関数 exit) エラー:ステートメントにセミコロンが無い(関数 exit) と出ます。 windowsでC言語書いています。 入力した数値分「警告」を表示するプログラムなのですが #include <stdio.h> #include <stdlib.h> void exit(int x) { while(x-- > 0){ if(x==0){ printf("警告!\n"); exit 0; } printf("警告!残り%d回。\n", x); } } int main() //警告を表示する回数を変数に代入するプログラムvoid exitのxに渡す。 どうすればexitの位置でプログラムが終了するようにできるのでしょうか。 どなたか教えていただけないでしょうか。

  • C言語プログラムの質問なんですが、エラーが出てコンパイルできません。

    C言語プログラムの質問なんですが、エラーが出てコンパイルできません。 エラーメッセージ /tmp/ccGHoP41.o: In function `main': step1-7.c:(.text+0x39): undefined reference to `stringStdin' collect2: ld returned 1 exit status 何が間違ってるのか全くわからない状態です。 どなたかアドバイスお願いします!

  • validateがおかしいみたいです。

    いつもお世話になり誠にありがとうございます。 標記の件。 2つコードを提示します。 何故、エラーになるのかを教えてください。 エラー警告は ( ! ) Fatal error: Uncaught Error: Call to undefined function blogValidate() in /srv/www/htdocs/blog_create.php on line 5 ( ! ) Error: Call to undefined function blogValidate() in /srv/www/htdocs/blog_create.php on line 5 です。 度々すみません。 アドバイスの程、宜しくお願い申し上げます。          記 //ブログのバリデーション function blogValidate($blogs) { if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title']) > 191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } } } } ?> <?php require_once('blog.php'); $blogs = $_POST; $blog = new blog; $blog->blogValidate($blogs); この行がエラーになります。 $blog->blogCreate($blogs); ?> <p><a herf="/">戻る</a></p>

    • ベストアンサー
    • PHP
  • C言語の画像抽出

    C言語のプログラムをコンパイルした時に ”/tmp/cchzThVk.o: In function 'c_to_sh': 5.c:(.text+0x5b3): undefined reference to 'sqrt' 5.c:(.text+0x64e): undefined reference to 'atan2' collect2: Id は ステータス1で終了しました。” とメッセージが出るのですが、このメッセージが出たときはプログラムにミスがあるということなのでしょうか。教えてくださいお願いします。

  • C言語

    コンパイルしたときに /tmp/cceF11bH.o(.txet+0*1de):ln function 'hilbert.'0 : : undefined reference to 'hilbert' collect2 :ld はステータス1 で終了しました と表示されます。 どういう意味でしょうか?

  • c言語 コンパイルエラー

    以下webページに載っているC言語のプログラムをコンパイルした時に ”/tmp/cchzThVk.o: In function 'c_to_sh': 5.c:(.text+0x5b3): undefined reference to 'sqrt' 5.c:(.text+0x64e): undefined reference to 'atan2' collect2: Id は ステータス1で終了しました。” とメッセージが出るのですが、このメッセージが出たときはプログラムにミスがあるということなのでしょうか。教えてくださいお願いします。 http://plaza.rakuten.co.jp/dragonkkk

  • 終了条件文字列 「exit」

    (1) 「1以上の整数を入力:」と表示 (2) 1行読み込みをし、入力された値が文字列「exit」と等しいかどうかをチェックし、「exit」と等しい場合はプ ログラムを終了する。 (3) 入力された値が1以上の場合、階乗の計算 という問題で、どうしても「exit」で終わることができません。 できても、NumberFormatException になって終わりってしまいます。 こんな説明で理解してもらえるか分かりませんが、教えていただけませんか。

    • ベストアンサー
    • Java
  • ワード 言語バーの表示について教えて下さい。

    ワード 言語バーの表示について教えて下さい。 言語バーをOFFにして、また言語バーを表示させたい時は Windows のタスクバーのステータス領域に表示されている言語インジケータ ボタンをクリックし、[言語バーの表示] をクリックします。たとえば、日本語で作業している場合、ステータス領域に表示されている「青色のJPアイコン」 をクリックします。 で表示されるのですが、ワード2003を立ち上げると「青色のJPアイコン」はWindows のタスクバーのステータス領域に表示されるのですが、インターネット上で文字入力したい時に「青色のJPアイコン」がステータス領域に表示されません。 どうしたら「青色JPアイコン」が常時表示されるようになるのでしょうか? 以前は常に表示されたました。  OS Win2000 ワード2003 IMEスタンダードにて使用です。 よろしくお願い致します♪

  • biginTransaction();でエラー??

    いつも大変お世話になり誠にありがとうございます。 私は、おっしゃる通り、理解しながらやっていないです。 でも、自分なりに理解できるところは為になっております。 皆様のおかげです。 標記の件。 エラーメッセージは ( ! ) Fatal error: Uncaught Error: Call to undefined method PDO::biginTransaction() in /srv/www/htdocs/blog.php on line 30 ( ! ) Error: Call to undefined method PDO::biginTransaction() in /srv/www/htdocs/blog.php on line 30 です。 どう直せばいいでしょうか? どうか教えてください。 宜しくお願い申し上げます。      記 <?php require_once('dbc.php'); class Blog extends Dbc { protected $table_name = 'blog'; //カテゴリー名を表示 //引数:数字 //返り値:カテゴリーの文字列 public function setCategoryName($category) { if ($category == '1') { return '日常'; } elseif ($category == '2') { return '非日常'; } else { return 'その他'; } } public function blogCreate($blogs) { $sql = "INSERT INTO blog(title,content,category,publish_status) VALUES (:title, :content, :category, :publish_status)"; $dbh = $this->dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを投稿しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } function blogUpdate($blogs) { $sql = "UPDATE $this->table_name SET title = :title, content = :content, category = :category, publish_status = :publish_status Where id = :id"; $dbh = dbConnect(); $dbh->biginTransaction(); try { $stmt = $dbh->prepare($sql); $stmt->bindValue(':title', $blogs['title'], PDO::PARAM_STR); $stmt->bindValue(':content', $blogs['content'], PDO::PARAM_STR); $stmt->bindValue(':category', $blogs['category'], PDO::PARAM_INT); $stmt->bindValue(':publish_status', $blogs['publish_status'], PDO::PARAM_INT); $stmt->bindValue(':id', $blogs['id'], PDO::PARAM_INT); $stmt->execute(); $stmt->commit(); echo 'ブログを更新しました!'; } catch (PDOException $e) { $dbh->rollBack(); exit($e); } } function blogUpdate($blogs){ } //ブログのバリデーション function blogValidate($blogs) { if (empty($blogs['title'])) { exit('タイトルを入力してください。'); } if (mb_strlen($blogs['title']) > 191) { exit('タイトルは191文字以下にしてください。'); } if (empty($blogs['content'])) { exit('本文を入力してください。'); } if (empty($blogs['category'])) { exit('カテゴリーは必須です。'); } if (empty($blogs['publish_status'])) { exit('公開ステータスは必須です。'); } } } } ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう