我正在为我的 PHP 网站创建路由器并遇到了这样的方法:
public function getURI() {
if (!empty($_SERVER["REQUEST_URI"])) {
// do some stuff and return the result
}
}
Run Code Online (Sandbox Code Playgroud)
我发现即使我请求'example.com'-$_SERVER["REQUEST_URI"]不是空的(它是'/')
问题是:
为什么我需要检查是否$_SERVER["REQUEST_URI"]为空?
什么时候REQUEST_URI可以空?
在 HTTP 调用中,$_SERVER["REQUEST_URI"]永远不会为空,因为它是 HTTP 协议的一部分。
如果在 CLI 中调用此函数,则$_SERVER["REQUEST_URI"]可能为空。
编辑
或者,正如@ArtisticPhoenix 所指出的,它可以由用户unset($_SERVER["REQUEST_URI"]);或$_SERVER["REQUEST_URI"]="foo";