代码之家  ›  专栏  ›  技术社区  ›  xRobot

PHP5和严格标准错误

php
  •  0
  • xRobot  · 技术社区  · 14 年前

    严格标准:不应静态调用非静态方法Hello\u Misc::fix\u protocol(),假设$this来自中不兼容的上下文测试.php在线834

    第834行:

    $this->my_url = Hello_Misc::fix_protocol($my, 1);
    

    我使用的是最新版本的PHP(>=5.1.3),但在以前的版本(<=5.1.2)中它确实可以工作( ref ).

    1 回复  |  直到 12 年前
        1
  •  4
  •   netcoder    14 年前

    static 关键字是关键!您需要将方法声明为静态:

    class Hello_Misc {
    
       static public function fix_protocol($p1, $p2) {
          // code
       }
    
    }
    

    但是,如果您这样做(而且您应该这样做),您必须确保您没有使用对象上下文(即。 $this )用这种方法。如果你这样做了,你将不得不重新审视一下你的设计。