2

私の質問は、ワンライナーとして以下を書くことについてです:

header('Location: www.somesite.com');
exit(0);

PHPのドキュメントには、書き込みも可能でありexit('some string');、その文字列が出力されると記載されています。header()関数が生のHTTPヘッダーを作成するだけで、これはテキストの文字列である必要があると思いましたか?したがって、上記の2行に相当するものは次のようになります。

exit(header('Location: www.somesite.com'));

私はそれを少しテストしました、そしてそれは動作します(すなわち、正しく終了してリダイレクトします..まだシェネニガンが起こっているのを見ていません)。

しかし、私はグーグルでこれについて何も見つけることができず、関数が期待header()する実際の文字列を作成するかどうかは100%確信していません。exit()

それで、それはPHP関数のクールなトリックまたは間違った使用ですか?間違っている場合は、なぜですか?

4

2 に答える 2

2

header()はexit()関数に何も返しません-生のhttpヘッダーを送信し、returnタイプはvoidです。exit()関数は必須パラメーターを必要としないので、ええ、あなたがやっていることはうまくいくと思います:)

于 2012-08-08T02:08:41.157 に答える
1

それを行うこともできますが、2行のコードの方が読みやすく、きれいです。

header('Location: www.somesite.com');
exit(0);

1行が必要な場合は、関数を作成できます。

function redirect($url) {
    header("Location: $url");
    exit(0);
}
于 2012-08-08T02:17:15.510 に答える