我想知道这两种初始化类对象的方法的区别
方法一(使用作用域解析运算符):
Test::foo();
方法二(创建对象实例):
$test = new Test;
$test->foo();
还有这个 ->
运算符叫什么?
最佳答案
Test::foo()
只是静态调用一个类的方法,它不对对象做任何事情。它可能会初始化类中的静态值,但您通常不使用静态初始值设定项。在 Singletons 的情况下,可以在内部使用静态初始化程序,但你永远不应该像这样调用公共(public)静态初始化程序。
$test = new Test
实际上是实例化一个对象,在这个过程中很可能初始化。
请注意初始化(设置对象/类/变量的初始状态)和实例化(从类创建对象实例)之间的区别。
->
是 T_OBJECT_OPERATOR
。
关于php - 这两种初始化 PHP 类的方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6068384/