PHP header() function


PHP header() function

我正试图整合我公司合作伙伴的网站,我在这里遇到了这条线:

header("Location: field/index.php", overwrite); 

我浏览了header()函数的PHP手册,但找不到一个名为overwrite的参数。有人能给我什么线索吗?

第二个参数(replace)的含义与覆盖相同。如果你看到这条线:

header("Location: field/index.php", 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 header()有三个参数:

  • 字符串:(此处为"Location: field/index.php"
  • http_response_code:用于强制HTTP响应代码
  • Replace:一个布尔选项,用于覆盖以前类似的标头

来自文件:

可选的replace参数指示标头是否应该替换以前类似的标题[…]默认情况下,它将替换


代码中的overwrite值无效,因为它是布尔值所在的未加引号的字符串。使用header("Location: field/index.php", true);是正确的,但由于true是默认值,因此只需要header("Location: field/index.php")

http://us3.php.net/manual/en/function.header.php

php网站很适合回答这类问题。第二个参数只是告诉它是否"覆盖"(替换)已经设置的值。

请注意,传递到函数中的值不一定与参数的名称有任何关系。它们只是按顺序使用。这里,overwrite必须是一个在其他地方设置的变量,尽管令人惊讶的是,它前面没有典型的$标记它为PHP中的变量。将评估变量overwrite,并将其值作为头函数中的第二个参数传递。