Не удается вызвать статический метод из другого класса - PullRequest
0 голосов
/ 25 января 2012

У меня есть класс Users и класс Log.В классе Users у меня есть несколько методов.Если в методе обнаружена ошибка, я вызываю статический метод внутри класса Log, чтобы записать ошибку в текстовый файл и базу данных.Однако попытка фактически вызвать статический метод не работает, и я не получаю сообщение об ошибке.

Я включаю класс Log в класс Users, используя 'require_once' Log.php 'и вызываяметод с использованием Log :: log_error ().

Так что здесь происходит?

1 Ответ

5 голосов
/ 25 января 2012

Нет ничего плохого в том, как я вызывал статический метод; У меня просто была синтаксическая ошибка в моей программе (отсутствует точка с запятой). После хорошего ночного сна я понял, что я из себя представлял, и решил использовать свой разум и здравый смысл. Для других нубов вот что я сделал:

Я убедился, что в отчете об ошибках установлено значение error_reporting (E_ALL) (Примечание: это НЕ рабочий сервер);

Затем я искал журналы ошибок (* / var / log / http / error_log * в моей системе RHEL5) и выполнил команду tail -f , чтобы увидеть новые записи журнала в режиме реального времени.

Затем я снова запустил скрипт и, конечно же, обнаружил приятную ошибку «PHP Parse error: syntax error ..».

Для справки, если кто-то, кто не знаком с ООП, хочет узнать, как я использовал статический вызов метода, вот фрагмент кода:

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);
     }
  }

}
...