2

重複の可能性:
php - Location: ヘッダーを呼び出した後に exit() を呼び出す必要がありますか?

この質問にタイトルを付ける方法がわかりませんが、ここにあります。

以下の 2 つのコード スニペットの違いは何ですか。

script1 - なしexit():

if($var = true){
header('Location: anotherpage.php');
}

script2 - でexit():

if($var = true){
header('Location: anotherpage.php');
exit();
}

私が理解していることからheader()、条件が真の場合、現在のページを終了し、別のページにジャンプするため、exit()header()は無意味です-私は正しいですか?

4

2 に答える 2

3

このheader()関数は、ブラウザーにリダイレクトするように指示するヘッダーをページの残りの部分と共にブラウザーに送信するだけです。スクリプトを実行し続けたくない場合は、次のことを行う必要がありますexit()

スクリプトによっては、スクリプトを実行し続けたい場合もあります。ページのヒット数などを追跡している可能性があり、すべてのページの下部に含まれるデータベースにコードを挿入している可能性があります。リダイレクトの前にヒットを追跡したい場合は、exit早くしたくないでしょう。

ほとんどの場合exit、ブラウザに何も出力したくないため、必要な場合があります。余分なコードはリダイレクトを遅くするだけです。

于 2012-12-02T07:16:54.083 に答える
0

いいえ。if ($var = true)_if ($var == true)if ($var)

このheader関数は、HTTP ヘッダーにデータを追加します。if上記のステートメントの後に何もない場合は、どちらも同じです。しかし、ifコードが実行されるというステートメントの後にコードがある場合、これは望ましくありません。

于 2012-12-02T07:16:23.553 に答える