【发布时间】:2016-12-18 14:25:51
【问题描述】:
我在第 14 行收到此错误,此代码用于获取 url 的一部分(例如:enterforce.nnnet/server2/server3/ 用于 server2 示例)。 它正在工作,但我收到了这个错误:
PHP Notice: Uninitialized string offset: -1
完整代码:
<?php
class simpleUrl{
var $site_path;
function __construct($site_path){
$this->site_path = $this->removeSlash($site_path);
}
function __toString(){
return $this->site_path;
}
private function removeSlash($string){
if($string[strlen($string) - 1] == '/')
$string = '/';
return $string;
}
function segment($segment){
$url = str_replace($this->site_path, '', $_SERVER['REQUEST_URI']);
$url = explode('/', $url);
if( isset($url[$segment]) )
return $url[$segment];
else
return false;
}
}
?>
第 14 行:
if($string[strlen($string) - 1] == '/')
【问题讨论】:
-
那是因为您将一个空字符串传递给
removeSlash()方法。因为strlen($string)等于0,你最终会得到if($string[- 1] == '/'),这就是你得到这个错误的原因。首先检查字符串的长度,然后执行你的操作。