无法从另一个类中调用静态方法

时间:2012-01-24 23:53:50

标签: php static-methods

我有一个Users类和一个Log类。在Users类中,我有几种方法。如果在方法中发现错误,我会调用Log类中的静态方法将错误写入文本文件和数据库。但是,尝试实际调用静态方法不起作用,我没有收到错误消息。

我使用'require_once'Log.php'在Users类中包含Log类,并使用Log :: log_error()调用该方法。

那么这里发生了什么?

1 个答案:

答案 0 :(得分:5)

我调用静态方法的方式没有错;我的程序中只有语法错误(缺少分号)。经过一夜好眠,我意识到自己是一个什么样的傻瓜,并决定用我的大脑和常识。对于其他新手,这就是我所做的:

我确保将错误报告设置为error_reporting(E_ALL)(注意:这不是生产服务器);

然后我搜索了我的错误日志(我的RHEL5系统上的* / var / log / http / error_log *)并运行命令 tail -f 以实时查看新的日志条目。

然后我再次运行脚本,确定我有一个很好的“PHP Parse错误:语法错误..”错误。

作为参考,如果不熟悉OOP的人想知道我如何使用静态方法调用,这里是一段代码片段:

class Log
{
   public static function log_err($data)
   {
     //put code here
   }
}


class User
{
  private function user_action($action)
  {
     //put code here

     //If error call static method from Log class
     if($err)
     {  
        Log::log_err($data);
     }
  }

}