php静态方法 - “静态函数”和“公共静态函数”有什么区别?

时间:2014-03-20 15:33:33

标签: php static

正如标题所说,我似乎无法看到公共静态和普通静态之间的差异。即

public static function visitorUserCreate( $data  )
    {}

static function visitorUserCreate( $data  )
    {}

两者似乎都是公开的,如果默认情况下声明公开是什么意思?

2 个答案:

答案 0 :(得分:5)

来自PHP manual documentation for Static Keywords

  

为了与PHP 4兼容,如果没有使用可见性声明,那么属性或方法将被视为声明为public。

回答你的问题:

  

两者似乎都是公开的,如果默认情况下声明公开是什么意思?

无。宣布公开的目的是为了提高可读性。在编译器级别没有区别,但是通常很好的设计来声明它。

答案 1 :(得分:3)

没有区别。如果未声明,则它将是公共的,因为这是默认行为。来自PHP.net

  

类方法可以定义为public,private或protected。方法   声明没有任何显式可见性关键字被定义为   公共

但是,有一点。以下是PHP The Right Way的引用:

  

理想情况下,您应该编写符合已知标准的PHP代码。   这可以是PSR的任何组合,也可以是编码之一   PEAR或Zend制定的标准。这意味着其他开发人员可以   轻松阅读和使用您的代码,以及实施的应用程序   即使在处理大量的组件时,组件也可以具有一致性   第三方代码。

根据PSR-2,这是PHP-FIG批准的样式建议之一:

  

必须在所有属性和方法上声明可见性;抽象   最终必须在能见度之前宣布;必须是静态的   在能见度之后宣布。