由于升级到PHP 5.6,我收到了很多这样的错误。
严格标准:中只有变量应通过引用传递(ADRESS)第686行不推荐:非静态方法YRComm::convertEncodingUTF()不应静态调用,假设$this来自690 行(ADRESS)中的不兼容上下文
(ADDRESS)表示PHP文件,因为我不想在这里发布整个链接
以下是一些代码:
686线
if(null==$name||''==trim($name))$name=array_pop(explode('/',$url));
690线
$name=YRComms::convertEncodingUTF($name);
691号线
$name=YRComms::convertEncodingEntities($name);
693线
$url=YRComms::convertEncodingUTF($url);
等等…
对我该怎么做有什么猜测吗?
php文件可以在这里找到:http://www.filedropper.com/yr所有错误都可以在这里找到:http://www.filedropper.com/errorfromyr
第686行
更改此行
if(null==$name||''==trim($name))$name=array_pop(explode('/',$url));
到这个
if(null==$name||''==trim($name)) {
$name = explode('/',$url);
$name = end($name);
}
线路690691693
更改这些线路
$name=YRComms::convertEncodingUTF($name);
$name=YRComms::convertEncodingEntities($name);
// Clean URL
$url=YRComms::convertEncodingUTF($url);
到这个
$obj = new YRComms();
$name=$obj->convertEncodingUTF($name);
$name=$obj->convertEncodingEntities($name);
// Clean URL
$url=$obj->convertEncodingUTF($url);
正如@Halfstop所说,您静态地调用非静态方法。
我不知道YrCommons是如何构建的。如果它是带构造函数的普通类,那么你需要做一些类似的事情
$obj = new YRComms(); $obj->convertEncodingUTF($url);
如果它是单例的,那么你需要做一些类似的事情
YRComms::getInstance()->convertEncodingUTF($url);
如果不了解YRComms类的定义,我将无法为您提供更多帮助。