PHP-实例化类和返回实例化之间的区别

PHP-实例化类和返回实例化之间的区别,php,class,oop,Php,Class,Oop,正常的类声明和实例化: class Foo { // properties // methods } new Foo(); 返回的类声明和实例化: class FooBar { // properties // methods } return new FooBar(); 在PHP中,这两个类在使用类方面有什么区别?如果您只返回new FooBar(),它将只执行其u构造方法(如果有)。 但是您可以调用方法,而无需将对象指定给变量。像这样: retur

正常的类声明和实例化:

class Foo {
    // properties
    // methods 
}

new Foo();
返回的类声明和实例化:

class FooBar {
    // properties
    // methods 
}

return new FooBar();

在PHP中,这两个类在使用类方面有什么区别?

如果您只返回new FooBar(),它将只执行其u构造方法(如果有)。 但是您可以调用方法,而无需将对象指定给变量。像这样:

return (new FooBar())->yourMethod();

第一个基本上什么都不做(除非你在构造函数中做了一些疯狂的事情),第二个从方法/函数返回实例。。但是,在以某种方式使用返回的内容之前,仍然什么也不做。这就是你要问的吗?@OliverO'Neill不完全是。假设我在这两者中都有普通的方法和属性。我像上面那样实例化它们。我在一个变量中新创建了第一个,并像往常一样使用它来调用方法。现在,如果我像FooBar一样返回类,我如何使用它来运行内部的方法?你不返回类,而是返回类的实例。我强烈建议你在PHP中查找如何处理对象。调用
new
时,将其分配给变量,这非常简单。然后调用该变量的方法(即刚刚创建的类的instance)。这是我能解释的最简单的了。尝试阅读更多关于如何使用对象的示例,并尝试使用它。然后再问一些确定的问题。@OliverO'Neill,谢谢你的解释。我实际上知道PHP中的对象是如何工作的。我只是想知道返回这样一个类实例的目的是什么。下面的答案实际上澄清了问题。我试图理解,构造函数是通过这个简单的返回执行的。顺便说一句,你在第一次评论中提到了这一点。再次感谢!