为什么User::factory()
会创建一个对象,但User::factory()->get()
不是?我究竟做错了什么?谢谢!
class User {
public $name;
public $email;
public static function factory()
{
return new User();
}
public function get()
{
$this->name = 'Foo Bar';
$this->email = 'foo.bar@baz.com';
}
}
答案 0 :(得分:3)
User::factory()
创建一个对象,因为它返回一个由构造函数创建的对象。 User::factory()->get()
创建一个对象并调用get方法,但get方法不返回该对象,因此它会被破坏。如果您希望get方法返回对象,只需在方法结束时使用return $this;
。
否则将返回的对象分配给变量,然后调用get:
$user = User::factory();
$user->get();
答案 1 :(得分:1)
让你的返回$ this; 。
答案 2 :(得分:1)
get方法没有返回任何内容。您可以添加:
return $this;
作为get方法的最后一行,如果你想让它返回一个对象。