Строгие стандарты не статический метод

Я хочу исправить эту ошибку:

Строгие стандарты: нестатический метод
Gpf_Settings_Regional :: getInstance () не должен вызываться статически,
предполагая $ this из несовместимого контекста в строке 39

Код, производящий это:

$this->addValue(Gpf_Settings_Gpf::REGIONAL_SETTINGS_DECIMAL_SEPARATOR,
Gpf_Settings_Regional::getInstance()->getDecimalSeparator());

Я знаю, что это метод для PHP 5.3, но у меня есть 5.4 на виртуальном хостинге и мне нужно вызвать static на PHP 5.4

-1

Решение

Проблема:

Вы получаете доступ к нестатическому методу статически с включенными строгими стандартами.

Решения:

Вы можете обновить класс Gpf_Settings_Regional

менять

public function getInstance()

в

public static function getInstance()

Если вы не можете изменить этот класс, вы можете изменить отчет об ошибках и переключатель отчетов об ошибках строгих стандартов, но было бы лучше улучшить код.

Как устранить ошибки строгих стандартов php5?

2

Другие решения

если я вижу хорошо, это уже сделано по сценарию

* /
частный статический экземпляр $;

public static function create(Gpf_Application $application) {
setlocale(LC_ALL, 'en.UTF-8');
self::$instance = $application;
self::$instance->registerRolePrivileges();
self::$instance->initLogger();
self::$instance->addSmartyPluginsDir();
$timezone = Gpf_Settings_Gpf::DEFAULT_TIMEZONE;
try {
$timezone = Gpf_Settings::get(Gpf_Settings_Gpf::TIMEZONE_NAME);
} catch (Gpf_Exception $e) {
Gpf_Log::error('Unable to load timezone: %s - using default one.', $e->getMessage());
}
if(false === @date_default_timezone_set($timezone)) {
Gpf_Log::error('Unable to set timezone %s:', $timezone);
}
}

public function getDefaultLanguage() {
return 'en-US';
}

/**
* @return Gpf_Application
*/
public static function getInstance() {
if(self::$instance === null) {
throw new Gpf_Exception('Application not initialize');
}
return self::$instance;
}

и это часть, где проблема

абстрактный класс Gpf_ApplicationSettings extends Gpf_Object {

/**
* @var Gpf_Data_RecordSet
*/
private $recordSet;

const CODE = "code";
const VALUE = "value";

protected function loadSetting() {
$this->addValue("theme", Gpf_Session::getAuthUser()->getTheme());
$this->addValue("date_time_format", 'MM/d/yyyy HH:mm:ss');
$this->addValue("programVersion", Gpf_Application::getInstance()->getVersion());
$this->addValue(Gpf_Settings_Gpf::NOT_FORCE_EMAIL_USERNAMES, Gpf_Settings::get(Gpf_Settings_Gpf::NOT_FORCE_EMAIL_USERNAMES));

$quickLaunchSettings = new Gpf_Desktop_QuickLaunch();
$this->addValue(Gpf_Desktop_QuickLaunch::SHOW_QUICK_LAUNCH, $quickLaunchSettings->getShowQuickLaunch());

$this->addValue(Gpf_Settings_Gpf::REGIONAL_SETTINGS_THOUSANDS_SEPARATOR,

Gpf_Settings_Regional :: деЫпзЬапс () -> getThousandsSeparator ());
$ this-> addValue (Gpf_Settings_Gpf :: REGIONAL_SETTINGS_DECIMAL_SEPARATOR, Gpf_Settings_Regional :: getInstance () -> getDecimalSeparator ());
$ this-> addValue (Gpf_Settings_Gpf :: REGIONAL_SETTINGS_DATE_FORMAT, Gpf_Settings_Regional :: getInstance () -> getDateFormat ());
$ this-> addValue (Gpf_Settings_Gpf :: REGIONAL_SETTINGS_TIME_FORMAT, Gpf_Settings_Regional :: getInstance () -> getTimeFormat ());

    Gpf_Plugins_Engine::extensionPoint('Core.loadSetting', $this);
}
0

По вопросам рекламы [email protected]