为什么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';
}
}
User::factory()
创建一个对象,因为它返回由构造函数创建的对象。 User::factory()->get()
创建一个对象并调用 get 方法,但 get 方法不返回该对象,因此它之后会被破坏。如果希望 get 方法返回对象,只需在方法末尾使用 return $this;
。否则将返回的对象分配给变量,然后调用 get:
$user = User::factory();
$user->get();
让你得到回报$this;。
get 方法不返回任何内容。您可以添加:
return $this;
作为 get 方法的最后一行(如果您希望它返回一个对象)。