我想一個網站從我公司的合作伙伴整合,我遇到了此行的位置:PHP header()函數
header("Location: field/index.php", overwrite);
我瀏覽header()
功能的PHP手冊,但不能找到一個名爲overwrite
的參數。 有人可以給我任何線索嗎?
我想一個網站從我公司的合作伙伴整合,我遇到了此行的位置:PHP header()函數
header("Location: field/index.php", overwrite);
我瀏覽header()
功能的PHP手冊,但不能找到一個名爲overwrite
的參數。 有人可以給我任何線索嗎?
它(覆蓋)可能是一個常數,例如
define('overwrite', true);
header("Location: field/index.php", overwrite);
在這種情況下overwrite
表示布爾true
和正被用來取代先前的報頭。
雖然,常量應該用大寫字母來聲明,但如果有人使用小寫字母,它不會拋出任何錯誤。定義常量推薦的方法是
defined('OVERWRITE') or define('OVERWRITE', TRUE);
值得一提的是,這種方式定義的任何常量在全球範圍內,在整個腳本/應用,基本上開發商在腳本的開始或應用程序定義常量,它可能被定義在一個不同的文件中(這是在啓動時包含/執行的),所以你可能不會在當前腳本中看到它。
非常感謝,真的幫助我。 –
不客氣:-) –
http://us3.php.net/manual/en/function.header.php
PHP的網站是很好的這樣的問題。第二個參數只是告訴它是否「覆蓋」(替換)已經設置的值。
請注意,傳遞給函數的值不一定與參數的名稱有關。它們只是按順序使用。這裏,overwrite
必須是其他地方設置的變量,儘管令人驚訝的是它沒有在PHP中將其標記爲變量的典型$。計算覆蓋變量並將其值作爲頭函數中的第二個參數傳遞。
在PHP中沒有'$'的變量是沒有的。沒有'$',如果定義了這樣一個常數,它就是一個常數。否則它是一個警告和字符串文字「覆蓋」。 – Paulpro
我做了回聲覆蓋並生成「注意:使用未定義的常量」。根據PleaseStand覆蓋變成了一個字符串'覆蓋',它轉換爲布爾值true –
第二個參數(替換)意味着與覆蓋相同的東西。如果你看行:
header("Location: field/index.php", overwrite);
這是最有可能無效(這在技術上是有效的,如果改寫爲常數)。它應該是:
header("Location: field/index.php", true);
覆蓋(沒有美元符號)工作(但會生成一個「注意:使用未定義的常量」),因爲如果未定義,它會變成字符串''覆蓋「'。該字符串轉換爲布爾值「true」。在任何情況下,函數的默認值都是'true',所以不需要。 – PleaseStand
@PleaseStand是的,它會工作,但它仍然無效。 – Paulpro
@PleaseStand真的在教學,但我仍然不明白爲什麼一個字符串可以轉換爲布爾值。 –
有三個參數爲PHP header()
:
"Location: field/index.php"
這裏)http_response_code
:用於強制HTTP響應代碼可選的替代參數指示頭部是否應該 替換以前類似的標題[...]默認情況下,它會在你的代碼替換
的overwrite
值是無效的,因爲它是一個布爾值應該是的未加引號的字符串。使用header("Location: field/index.php", true);
是正確的,但由於true
是默認設置,因此您只需要header("Location: field/index.php")
。
我明白了,非常感謝!這是別人的代碼,我不知道他/她用這種方式玩,並花費我一個小時googlling和閱讀PHP手冊。感謝你們,我現在可以理解它。 –
默認情況下,覆蓋參數設置爲true,所以你不必自己設置它 – Philipp
無需投票給這個傢伙。 – VladHQ