不推荐使用:非静态方法YRComms :: convertEncodingUTF()不应该静态调用,

时间:2015-02-24 18:25:46

标签: php

由于升级到PHP 5.6,我收到了大量此错误。

  

严格标准:只应通过引用传递变量   406号线上的(ADRESS)不推荐使用:非静态方法   YRComms :: convertEncodingUTF()不应该静态调用,   假设$ 6来自第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

2 个答案:

答案 0 :(得分:1)

第686行

更改此行

if(null==$name||''==trim($name))$name=array_pop(explode('/',$url));

到这个

if(null==$name||''==trim($name)) {
    $name = explode('/',$url);
    $name = end($name);
}

第690,691,693行

更改这些行

$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);

答案 1 :(得分:0)

正如@Halfstop所说,你静态地调用非静态方法。

我不知道YrComms是如何构建的。如果它是带有构造函数的普通类,那么你需要做类似

的操作

$obj = new YRComms(); $obj->convertEncodingUTF($url);

如果是单身,那么你需要做一些像

这样的事情
YRComms::getInstance()->convertEncodingUTF($url);

如果不知道YRComms类的定义,我无法帮到你。