未初始化的字符串

时间:2018-07-17 13:30:37

标签: php

我遇到了这个错误:

注意:未初始化的字符串偏移:第8行在App.php中为-1

第8行是下面的第二行:

$uri = $_SERVER['REQUEST_URI'];
    if(!empty($uri) && $uri[-1] === "/"){
      header('Location: '. substr($uri, 0, -1));
      header('HTTP/1.1 301 Moved Permanently');
      exit();
    }

如果uri是index.php /

,我只想重定向到index.php

我的php版本是7.0.30,此代码应该可以工作(我从php教程中获得了它)

哦,当然,标头位置不起作用,如果我要使用index.php /则不会重定向我。

4 个答案:

答案 0 :(得分:2)

从PHP 7.1 开始支持负偏移,如the manual所述。

答案 1 :(得分:1)

您可以使用substr($uri, -1)在7.1以下的PHP版本中获得相同的结果。

实际上,您甚至可以在下一行使用它!

答案 2 :(得分:0)

PHP 7.0不支持负字符串偏移。

您可以通过

更好地进行检查
substr($uri, -1) === "/"

使用php 7.0时

答案 3 :(得分:0)

您可以使用$uri[strlen($uri)-1]