我总是看到认真的项目中的人在任何地方都使用::,而->仅在本地环境中偶尔使用。

我只使用->我自己,并且永远不会遇到需要在类之外使用静态值的情况。我是坏人吗?

据我了解,->不起作用的唯一情况是尝试以下操作:

class StaticDemo {
    private static $static
}

$staticDemo = new StaticDemo( );

$staticDemo->static; // wrong
$staticDemo::static; // right

但是,当我不通过::调用简单的公共(public)方法时,是否会错过某些编程的正确性?

还是只是为了让我可以在不创建实例的情况下调用方法?

最佳答案

::用于引用静态属性或类的方法。 ->用于引用实例属性和方法。您不会错过任何编程正确性,如果您是坏人,那也不是因为这个原因。您使用哪一种取决于您的类(class)目的和编写方式。但是,PHP直到最近才有了 namespace ,因此很多人将其代码封装在静态类中以模拟 namespace 以避免命名冲突。您可能会看到执行此操作的代码。

关于php - PHP中::和->之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2804775/

10-09 04:30