Я использую Sublime text 3 и codeformatter Плагин для написания кода. Прошлой ночью я получил фатальную ошибку на моем живом сервере:
Неустранимая ошибка: Uncaught ErrorException: Резервное копирование нестатического метода :: new ()
не должен называться статически
Я заметил, что codeformatter удалил статическое ключевое слово.
В качестве рабочего примера:
<?php
/**
* the example class
*/
class example
{
function __construct()
{
# code...
}
# static method for example class called `new`
public static function new(){
# code...
}
# some non static method class
public function non_static(){
# code...
}
}
Изменено на это:
<?php
/**
* the example class
*/
class example
{
public function __construct()
{
# code...
}
# static method for example class called `new`
function new () {
# code...
}
# some non static method class
public function non_static()
{
# code...
}
}
Как настроить кодировщик /phpf оставить статическое ключевое слово как есть или хотя бы рассказать об этом перед его удалением? Я прочитал документы и искал проблемы обоих проектов, но, к сожалению, безрезультатно.
Я сомневался, где разместить этот вопрос. Я выбираю для stackoverflow, потому что я думаю, что есть большее изменение в получении ответа.
Я только что понял, что new
это зарезервированное ключевое слово. Документы говорят, что я могу использовать их как имена методов, хотя. Не уверен, если это связано с проблемой. я бегу PHP 7.2.7
,
Начиная с PHP 7.0.0 эти ключевые слова разрешены как свойства, константы и
имена методов классов, интерфейсов и признаков, за исключением того, что класс может
не следует использовать в качестве постоянного имени.
Задача ещё не решена.
Других решений пока нет …