我已经看到两者都用在PHP库的文档中(看似可以互换),并且想知道是否有一种方法可以解决疯狂问题以及每个应该使用的时间? (或者,如果它们意味着不同的东西,我在文档中遗漏的细微差别)
示例:
ClassName#foo() // a method
ClassName::bar() // a method
ClassName::baz // a property
我还没有看到有人试图将ClassName#qux
用于购买房产,但也许这样做也可能!
希望这个帖子有助于让人们保持直线和狭窄!
提前致谢
P.S。谷歌很难找到这个。 "#" ="哈希" ="磅"和" ::" ="双冒号" =" T_PAAMAYIM_NEKUDOTAYIM" ...和"哈希"当然,它也意味着一切。
编辑:另一个问题是将属性和变量记录为ClassName::foo
或ClassName::$foo
是否正常/正确(即有或没有领先的$)
答案 0 :(得分:2)
即使对于PHP,这也是有悖常理的,这说的很多。不要在任何情况下这样做。
答案 1 :(得分:1)
可能消除实际静态方法(可以用Foo::bar()
调用)和实例方法之间的歧义,这些方法需要一个对象实例,如$foo->bar()
。这是我能想到的唯一明智的解释,并且它不是我所知道的任何背景下的官方标准。