从类函数返回类对象?

时间:2015-07-15 16:27:54

标签: php

我有3个文件:

main.php(所有网站代码) AccountHandler.class.php(处理登录/注销/获取acc详细信息) User.class.php(普通用户特征的普通对象,getter和setter)

登录'在AccountHandler中,它检查密码是否正确,然后返回该帐户的文件详细信息。我希望然后实例化一个用户'对象并用这些细节填充它,从函数中返回所述对象。

然而,另一方面,在最初调用该函数的main.php中,我需要能够识别' User'对象并访问值。

如何在UserHandler类和main.php中包含User类文件,以便它们都可以使用' User'类?

这有什么意义吗?

class User
{

private $email;
private $username;
private $role;

public function __construct($email, $username, $role)
{
    $this->setUsername($username);
    $this->setEmail($email);
    $this->setRole($role);
}

public function getEmail(){
    return $this->email;
}

public function setEmail($email){
    $this->email = $email;
}

public function getUsername(){
    return $this->username;
}

public function setUsername($username){
    $this->username = $username;
}

public function getRole(){
    return $this->role;
}

public function setRole($role){
    $this->role = $role;
}


}

1 个答案:

答案 0 :(得分:0)

通过创建资源对象,您可以通过引用传递对象。

以下是一些示例代码。

<强> Main.php

$resources = new stdClass;
$account = new account($resources);
$account->checkAccount();
if(isset($resources->user)){
   var_dump($resources->user);
}

帐户类

class account{

  private $resources;
  private $loginSuccess = false;

  public function __construct($resources){
     $this->resources = $resources;
  }

  public function checkAccount(){

    if($this->loginSuccess){
       $this->resources->user = new user($email, $username, $role);
    }   

  }
}

您可能还会发现this有用