変数を埋めるとき、次のようなことができますか?:
$type = isset( $_GET['type'] ) ? $_GET['type'] : die();
そうすることで、「タイプ」がリクエストにない場合、私の関数は終了します。これは die() を使用する正しい方法ですか?
変数を埋めるとき、次のようなことができますか?:
$type = isset( $_GET['type'] ) ? $_GET['type'] : die();
そうすることで、「タイプ」がリクエストにない場合、私の関数は終了します。これは die() を使用する正しい方法ですか?
関数を終了させたい場合は、 を使用しますreturn
。if
ただし、これは式ではないため、ステートメントに変更する必要があります。
if(!isset($_GET['type'])) {
return;
}
$type = $_GET['type'];
ページ全体の実行を停止したい場合は、そのとおりです (ただしif
、明確にするために引き続き を使用します)。
はいといいえ。はい、あなたがしていることは技術的に正しく、変数が存在しない場合はスクリプトを終了しますが、コードをテストしたい場合はdie
構成を使用しないでください。PHP はオブジェクト指向言語 (バージョン 5 以降) であり、非常に強力な言語です。ここで使用する高度なエラー処理の例外の使用がサポートされています。
die()
を使用して変数を埋めることはできません。die()
コードを終了します。代わりに、以下のコードを検討してください。
$type = isset( $_GET['type'] ) ? $_GET['type'] : null;
Ternary Operator Docsには、次のように書かれています。
$type = isset( $_GET['type'] ) ? $_GET['type'] : die();
次の if/else ステートメントと同じです。
if ( isset( $_GET['type'] ) )
$type = $_GET['type'];
else
$type = die();
が呼び出され、スクリプトの実行を停止するため機能die()
しますが、良い習慣ではありません。これを踏まえて、if/else ステートメントを使用し、die()
以下のように $_GET['type'] が存在しない場合は単純に呼び出す方がよいと思います。
if ( isset( $_GET['type'] ) )
$type = $_GET['type'];
else
die('type not found');
die()関数は、現在の関数を終了するだけでなく、PHP プロセス全体を終了します。それ以上に、コードは PHP が一種の間抜けであるという事実に依存しています。die()は厳密には void 関数であると想定されていますが、呼び出しは何かを返すことに依存しています。これは行いますが、すべきではありません。
本当に必要なのは、簡単なifステートメントです。
if( ! isset($_GET['type']) )
return;
$type = $_GET['type'];
もう 1 つは、このコードが関数内にある場合、グローバルとして宣言されていない限り、$type の値は保持されないことです。