REQUEST_URI 何时可以为空?

Joh*_*ent 4 php

我正在为我的 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可以空?

Sys*_*all 5

在 HTTP 调用中,$_SERVER["REQUEST_URI"]永远不会为空,因为它是 HTTP 协议的一部分。

如果在 CLI 中调用此函数,则$_SERVER["REQUEST_URI"]可能为空。

编辑

或者,正如@ArtisticPhoenix 所指出的,它可以由用户unset($_SERVER["REQUEST_URI"]);$_SERVER["REQUEST_URI"]="foo";