【问题标题】:Only One "Global" variable - Implementing Correctly?只有一个“全局”变量 - 正确实施?
【发布时间】:2012-04-19 18:59:40
【问题描述】:

我将全局变量减少到只有一个。注入一个只有一个变量和一个 getter 函数的类似乎有点奇怪,但我不想要任何隐式依赖项,我希望它们都是显式的并记录在案。此外,我只希望我授予访问权限的类可以访问“全局变量”。所以从某种意义上说,它们不是全球性的。需要重命名才能共享。 LOAD_ON 是我在多个类中唯一需要的变量。

在尝试遵守SOLID/DRY(不要重复自己)/OOP(面向对象编程)时,这是实现“全局”变量的正确方法(最佳实践)吗?

<?php 

class GlobalClass
{
    private $LOAD_ON = 0;
    public function getLoad()
    {
        return $this->LOAD_ON;
    }
}

【问题讨论】:

标签: php


【解决方案1】:

如果您只有 1 个“全局”并且不需要更改它,那么最好使用常量。

define('LOAD_ON', 0);

这样使用

if(LOAD_ON === 0){
 ///...

【讨论】:

  • 是的,你的班级也是如此。我可以使用 $gc = new GlobalClass();
  • 注册表模式提供封装...所以现在它将是 new Shared();...共享实现此模式...0 全局...可能看起来过度设计...但为了保持一致性,我将使用它。
猜你喜欢
  • 1970-01-01
  • 2023-01-11
  • 2015-07-25
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多