php静态方法问题

geo*_*310 5 php oop

这两段代码有什么区别?

class something {

   static function doit() {
      echo 'hello world';
   }
}

something::doit();
Run Code Online (Sandbox Code Playgroud)

和相同但没有static关键字

class something {

   function doit() {
      echo 'hello world';
   }
}

something::doit();
Run Code Online (Sandbox Code Playgroud)

它们的工作方式相同是否更好地使用静态关键字?我是否正确理解如果使用静态方法它不会实例化该类?

Joh*_*ker 11

第二个示例在技术上是不正确的 - 如果您打开E_STRICT错误报告,您将看到PHP实际上是在抛出错误.

PHP严格标准:非静态方法:: doit()不应该在...中静态调用

换句话说,它很好,让你无论如何都要调用这个函数.