2010-09-21 55 views
0

有没有办法实例化一个类并在一行中调用其方法之一?我希望下面的工作,但它不会:在一行中实例化和调用方法

(new User())->get_name(); 
+0

我希望不是 - 最好把你的代码的可读性。 – 2010-09-21 12:26:00

+1

如何像User :: get_instance() - > get_name()?可以像那样的工作? – 2010-09-21 12:27:12

+0

[在实例创建时调用对象的方法]的可能的重复(http://stackoverflow.com/questions/2536885/calling-a-method-of-an-object-at-instance-creation) – Gordon 2010-09-21 12:32:30

回答

6

这是不可能的。但是,您可以创建一个返回新实例的静态方法。例如:

class User { 
    public static function create() { 
     return new self(); 
    } 
} 

User::create()->get_name(); 
+0

这将工作为了我。谢谢! – 2010-09-21 12:28:37

2

不,很抱歉,这不幸的是不能在PHP中工作。你可以通过使用静态工厂方法或类似的东西来解决它。

0

试试看能否适合您。它从类中调用函数而不是对象。

User::get_name(); 
相关问题