实例化类方法而不在PHP中实例化类不再可能?

ric*_*ges 2 php methods class

我不确定我是丢失它还是什么.我最近在需要休息之后跳回PHP,并且我正在尝试做一些我一直能做的事情:调用公共类方法而不实例化类.例:

  class Utils 
  {
    public function getTime() 
    {
      return time();
    }
  }

  $time = Utils::getTime();
  echo $time;
Run Code Online (Sandbox Code Playgroud)

我曾经一直这样做(大约两三年前),但是在我设置的新沙箱环境中跳入PHP 5.3之后,我一直在

  Fatal error: Call to undefined function getTime() in /mnt/richard/index.php on line 24
Run Code Online (Sandbox Code Playgroud)

我在这里想念傻事吗?或者是没有类实例化的公共类方法的使用在PHP中是否已被弃用?哦,时代变了......

我的总体目标是能够创建属于一组分组的方法,这些类可以在其他方法和类中的全局范围内调用.任何帮助都感激不尽.谢谢.

Lio*_*hen 6

你不应该在类上调用实例方法作为静态方法,即使PHP允许你这样做.调用时:

 Utils::getTime();
Run Code Online (Sandbox Code Playgroud)

您正在从静态上下文调用实例方法.你应该这样定义getTime:

class Utils 
{
    public static function getTime() 
    {
       // You can't use $this in here. This is a static function. No instance exists.
       return time();
    }
}
Run Code Online (Sandbox Code Playgroud)