我想知道这两种初始化类对象的方法之间的区别
方法1(使用范围解析运算符):
Test::foo();
Run Code Online (Sandbox Code Playgroud)
方法2(创建对象的实例):
$test = new Test;
$test->foo();
Run Code Online (Sandbox Code Playgroud)
这个->运营商叫什么?
Test::foo()只是静态地调用类的方法,它不对对象做任何事情.它可能会初始化类中的静态值,但通常不使用静态初始值设定项.在Singletons的情况下,可以在内部使用静态初始化程序,但是你永远不应该像这样调用公共静态初始化程序.
$test = new Test实际上是实例化一个对象,在哪个进程中它可能被初始化.
请注意initialize(设置对象/类/变量的初始状态)和实例化(从类创建对象实例)之间的区别.
->是的T_OBJECT_OPERATOR.