会社のパートナーのウェブサイトを統合しようとしていますが、ここで次の行に出くわしました。
header("Location: field/index.php", overwrite);
関数の PHP マニュアルを参照しましheader()
たが、 というパラメーターが見つかりませんoverwrite
。誰かが私に何か手がかりを与えることができますか?
2 番目のパラメーター (置換) は、上書きと同じ意味です。次の行が表示された場合:
header("Location: field/index.php", overwrite);
これはおそらく有効ではありません (overwrite が定数の場合、技術的には有効です)。そのはず:
header("Location: field/index.php", true);
それ(上書き)は、たとえば定数である可能性があります
define('overwrite', true);
header("Location: field/index.php", overwrite);
この場合、overwrite
ブール値true
を表し、以前のヘッダーを置き換えるために使用されています。
ただし、定数は大文字を使用して宣言する必要がありますが、代わりに小文字を使用してもエラーは発生しません。定数を定義するための推奨される方法は
defined('OVERWRITE') or define('OVERWRITE', TRUE);
この方法で定義された定数は、スクリプト/アプリケーション全体でグローバルに使用でき、基本的に開発者はスクリプトまたはアプリケーションの最初で定数を定義し、別のファイルで定義できることに注意してください (開始時に含まれる/実行される)上) そのため、現在のスクリプトでは表示されない場合があります。
PHP には 3 つのパラメーターがありますheader()
。
"Location: field/index.php"
ここ)http_response_code
: HTTP 応答コードを強制するために使用されますドキュメントから:
オプションの replace パラメータは、ヘッダーが以前の同様のヘッダーを置き換える必要があるかどうかを示します [...] デフォルトでは、置き換えます
コードのoverwrite
値は無効です。これは、ブール値が存在するはずの引用符で囲まれていない文字列であるためです。を使用するheader("Location: field/index.php", true);
のは正しいですが、true
がデフォルトであるため、必要なのはheader("Location: field/index.php")
.
http://us3.php.net/manual/en/function.header.php
php サイトは、この種の質問に適しています。2 番目のパラメーターは、既に設定されている値を「上書き」(置換) するかどうかを指定するだけです。
関数に渡される値は、必ずしもパラメーターの名前とは関係がないことに注意してください。それらは単に順番に使用されます。ここでは、overwrite
別の場所に設定された変数である必要がありますが、PHP で変数としてマークされている典型的な $ が先頭にないのは驚くべきことです。変数 overwrite が評価され、その値がヘッダー関数の 2 番目のパラメーターとして渡されます。