我正在尝试从我公司的合作伙伴那里整合一个网站,我在这里遇到了这条线:
header("Location: field/index.php", overwrite);
我浏览了函数的 PHP 手册header()
,但找不到一个名为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);
值得一提的是,以这种方式定义的任何常量在整个脚本/应用程序中都是全局可用的,基本上开发人员在脚本或应用程序的开头定义常量,它可以在不同的文件中定义(在启动时包含/执行up) 因此,您可能在当前脚本中看不到它。
PHP 有三个参数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 站点适合这类问题。第二个参数只是告诉它是否“覆盖”(替换)已经设置的值。
请注意,传递给函数的值不一定与参数名称有关。它们只是按顺序使用。在这里,overwrite
必须是在其他地方设置的变量,尽管令人惊讶的是它前面没有典型的 $ 将其标记为 PHP 中的变量。对变量覆盖进行评估,并将其值作为头函数中的第二个参数传递。