首页 > 解决方案 > 如何从另一个类中的一个类中获取变量?

问题描述

我有 2 节课:UserAnswer

我在 User 类中定义名称是“Peter”

如何在User实例内部获取Answer实例中定义的名称?

$user= new User(); 
$user->name = "Peter";      


$answer = new Answer(); 
echo $answer->getListAnswer(); //how can I get the name of the User (Peter) in the function getListAnswer() in the Class Answer?

标签: phpclassoop

解决方案


User实例注入Answer实例。像这样,例如:

class Answer
   private $user;

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

   public function getListAnswer() {
      $userName = $this->user->name;

      // rest of your method.
      // Use $userName where you need it.
   }
}

首先你User像往常一样创建你的对象:

$user       = new User(); 
$user->name = "Peter";      

在构造函数中,Answer我们声明它需要(依赖于)一个User对象。所以你传递你刚刚创建的用户对象来实例化一个新的Answer

$answer = new Answer($user); 
echo $answer->getListAnswer();

推荐阅读