【发布时间】:2012-03-01 16:21:24
【问题描述】:
为什么在 PHP 中你可以通过某个类的实例访问静态方法,而不仅仅是通过类型名称?
更新:我是 .net 开发人员,但我也与 php 开发人员一起工作。最近我发现了关于从实例调用的静态方法的这一刻,但不明白为什么它会有用。
示例:
class Foo
{
public static Bar()
{
}
}
我们可以接受这样的方法:
var $foo = new Foo();
$foo.Bar(); // ??????
【问题讨论】:
-
静态方法和属性起初有点棘手。您需要记住的是,静态方法或属性无需先实例化对象即可使用。
-
您能澄清一下您对代码 sn-p 的确切含义吗?你的问题有点模棱两可。
-
这不是 PHP 特定的。在 Python 中,您还可以从实例中访问用
@staticmethod装饰器装饰的方法,唯一的区别是静态方法不接收调用它们的上下文(对象)。
标签: php static-methods