我使用Sublime文本3和codeformatter插件编写代码。昨晚,我在实时服务器上收到致命错误:
致命错误:未捕获ErrorException:非静态方法backup :: new() 不应被静态调用
我注意到代码格式化程序删除了static keyword。
作为一个工作示例:
<?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...
}
}
如何配置codeformatter / phpf以使其保持static关键字不变,或者至少在删除它之前告诉我有关关键字?我已经阅读了文档并搜索了这两个项目的问题,但不幸的是没有结果。
我不确定该问题放在何处。我之所以选择stackoverflow,是因为我认为获得答案会有更大的变化。
我刚刚意识到new
是reserved keyword。文档说我可以将它们用作方法名称。不知道它是否与问题有关。我正在运行PHP 7.2.7
。
从PHP 7.0.0开始,这些关键字可以用作property,constant和 类,接口和特征的方法名称,但该类可以 不能用作常量名称。