Показать сообщение отдельно
  #1 (permalink)  
Старый 04.09.2014, 14:25
Аватар для Duda.Ml1986@gmail.com
Профессор
Отправить личное сообщение для Duda.Ml1986@gmail.com Посмотреть профиль Найти все сообщения от Duda.Ml1986@gmail.com
 
Регистрация: 01.09.2011
Сообщений: 263

Using $this when not in object context Внутри класса
class ErrorReporting {

    protected $tableName;
    protected static $_instance;
    protected  $DB;

    public function __construct()
    {
        $this->DB = DB::getInstance();
        $this->tableName = 'error_reporting';
    }

    public static function getInstance() {
        // проверяем актуальность экземпляра
        if (null === self::$_instance) {
            // создаем новый экземпляр
            self::$_instance = new self();
        }
        // возвращаем созданный или существующий экземпляр
        return self::$_instance;
    }

    public static function setError($where, $what)
    {
        $sql = '';

А ТУТ НЕДОСТУПНА $this->tableName, почему недоступна, потому что метод статический, как увидеть?


        $sql = "INSERT INTO `error_reporting` (`where`, `what`, `date`, `ip`) VALUES ('".$where."',
                '".$what."','".date('Y-m-d H:m:s')."','".self::GetRealIp()."'
        )";

        self::writeError($sql);

    }

    protected function writeError($sql)
    {
       [B] $response = $this->DB->Insert($sql);[/B]
ВОТ НА ЭТУ СТРОКУ И МАТЕРИТСЯ 
"Using $this when not in object context"



        /*if ($response == 1) {
            return $this->DB->LastInsertId();
        } else {
            // ошибка при первом запросеa
            $this->error = $this->DB->getError();
            return false;
        }*/
    }

    private function GetRealIp()
    {
        if (!empty($_SERVER['HTTP_CLIENT_IP']))
        {
            $ip=$_SERVER['HTTP_CLIENT_IP'];
        }
        elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
        {
            $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
        }
        else
        {
            $ip=$_SERVER['REMOTE_ADDR'];
        }
        return $ip;
    }
}



Как обратиться к другому обьекту который уже определен в переменной класса?
Ответить с цитированием