PHP header()函数

时间:2013-07-22 22:48:52

标签: php header

我正在尝试整合我公司合作伙伴的网站,我在这里遇到了这一行:

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

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

4 个答案:

答案 0 :(得分:3)

第二个参数(replace)与覆盖相同。如果你看到这一行:

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

这很可能无效(如果覆盖是常量,则技术上有效)。它应该是:

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

答案 1 :(得分:1)

PHP header()有三个参数:

  • 字符串:("Location: field/index.php"此处)
  • http_response_code:用于强制HTTP响应代码
  • 替换:覆盖以前类似标题的布尔选项

来自the documentation

  

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


代码中的overwrite值无效,因为它是一个不带引号的字符串,其中应该是布尔值。使用header("Location: field/index.php", true);是正确的,但由于true是默认设置,因此您只需要header("Location: field/index.php")

答案 2 :(得分:1)

它(覆盖)可以是常量,例如

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

在这种情况下,overwrite代表布尔true,用于替换之前的标题。

虽然,常量应该使用大写字母声明,但如果有人使用小写字母,它不会引发任何错误。建议定义常量的方法是

defined('OVERWRITE') or define('OVERWRITE', TRUE);

值得一提的是,任何以这种方式定义的常量都可以在整个脚本/应用程序中全局使用,基本上开发人员在脚本或应用程序的最开始定义常量,并且可以在不同的文件中定义(包括/在启动时执行)因此,您可能在当前脚本中看不到它。

答案 3 :(得分:0)

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

php网站对这类问题很有用。第二个参数只是告诉它是否“覆盖”(替换)已经设置的值。

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