我不确定我是丢失它还是什么。我最近在需要休息之后跳回PHP,并且我正在尝试做一些我一直能做的事情:调用公共类方法而不实例化类。例如:
class Utils
{
public function getTime()
{
return time();
}
}
$time = Utils::getTime();
echo $time;
我曾经一直这样做(大约两三年前),但是在我设置的新沙箱环境中跳入PHP 5.3后,我一直在
Fatal error: Call to undefined function getTime() in /mnt/richard/index.php on line 24
我在这里错过了一些愚蠢的东西吗?或者是没有类实例化的公共类方法的使用在PHP中是否已被弃用?哦,时代变了......
我的总体目标是能够创建属于一组分组的方法,这些类可以在其他方法和类中的全局范围内调用。任何帮助都感激不尽。感谢。
答案 0 :(得分:6)
你不应该在类上调用实例方法作为静态方法,即使PHP允许你这样做。调用时:
Utils::getTime();
您正在从静态上下文调用实例方法。你应该这样定义getTime
:
class Utils
{
public static function getTime()
{
// You can't use $this in here. This is a static function. No instance exists.
return time();
}
}