PHP Class 引用 Parent 变量

PHP Class Reference to Parent Variable

我正在构建一个 API 服务并有一个 parent class:

classAPI {
    public responseCode = "";
    public responseMessageLog ="";
    function run{
        // here I call my user auth class
        $oUser = new classUser(...);
    }
}

在我的 classUser 中,我做了一堆东西,然后写了一堆变量:responseMessageLog(这是脚本所在位置的 运行 日志)和 responseCode(设置为0 或 1 或其他取决于成功或失败或警告)。

我需要从我的用户 class 和我的 parent API class 中访问我的 responseCode 和 responseMessageLog 变量,但我真的不想成为将这些变量传递给每个 child class,然后将它们传递回去。我希望当我更新 child class 中的变量时,它会在我所有 class 的任何地方更新......有点像全局变量......但我知道那不是一个好主意。

其他人如何停止沿着 classes 的兔子踪迹传递变量。

在这个class我

传递依赖项并不是您想要避免的兔子洞——它可以生成更可测试的代码。但是,你不需要每个属性传递,你可以传递父对象。

在您的情况下,只需将 classAPI 对象传递给 classUser 的构造函数,然后在构造函数中将其分配给 属性。 classAPI 属性是 public,因此您可以在 classUser.

的实例中访问它们
 ClassAPI {
     public $responseCode = "";
     public $responseMessageLog ="";

     public function run{
         // here I call my user auth class
         $oUser = new ClassUser($this, ...);
      }
  }

 ClassUser {
     public $myClassApi = null;

     public function __construct(ClassAPI $myClassApi) {

         $this->myClassApi = $myClassApi;
      }

     public function someFunction() {
         echo $this->myClassApi->responseCode;
     }

   }

添加的注释:

  • 如果它出现在另一个答案中,请不要使用静态属性来做你想做的事情。
  • 将您的 class 名字大写。
  • 在生产代码中,我可能会在 ClasUser 中添加一个初始化函数,而不是将 ClassAPI 直接传递给构造函数。