实例化并在一行中调用方法

时间:2010-09-21 12:24:08

标签: php oop

有没有办法实例化一个类并在一行中调用其中一个方法?我希望以下内容可行,但事实并非如此:

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

4 个答案:

答案 0 :(得分:7)

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

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

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

答案 1 :(得分:7)

我知道这个问题已经过时了,但回复可能会产生误导。

从版本5.4开始,您可以实例化并调用内联方法:

(new Foo)->bar();

http://docs.php.net/manual/en/migration54.new-features.php

答案 2 :(得分:2)

不,对不起,遗憾的是这在PHP中不起作用。您可以使用静态工厂方法或类似的方法解决它。

答案 3 :(得分:0)

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

User::get_name();