在一些其他函数中包装全局对象的访问器方法

时间:2013-05-17 23:37:20

标签: php function object

我专门用PHP和WordPress做了很多东西,而且我经常在整个WordPress应用程序中遇到这个概念;虽然,这个问题并不是特定于WordPress。我将举例说明。

假设有一个类的全局对象。

global $foo;
$foo = new Foo();

然后这个类有一些可以与我们的全局对象一起使用的访问器方法。

global $foo;
$bar = $foo->get_bar();

好吧,我经常看到它包含在一个通用函数中,该函数负责处理对象的方法,基本上隐藏了它的一部分,使得访问该项更加简单。

function wp_get_bar() {
    global $foo;
    return $foo->get_bar();
}

因此,使用该应用程序的开发人员可以在他们想要的地方执行此操作,而无需具体了解$ foo全局对象:

$bar = wp_get_bar();

我只是好奇这是否是一般的计算机科学概念?如果是这样,它有名字吗?或者这是我可以在某处阅读更多内容的东西吗?

2 个答案:

答案 0 :(得分:1)

回答你的直接问题;没有官方术语通过函数中的全局构造访问变量,非官方的?怎么样“不要这样做”。

话虽如此,使用singleton模式可以正确地完成同样的事情:

class Foo {

    protected $bar;

    public function setBar($bar)
    {
        $this->bar = $bar;
    }

    public function getBar()
    {
        return $this->bar;
    }
}

class Foo_Package
{
    public static $foo;
}

function functionOne($params)
{
    var_dump(Foo_Package::$foo->getBar());
}

function functionTwo($id)
{
    var_dump(Foo_Package::$foo->getBar());
}

Foo_Package::$foo = new Foo();

$foo->setBar('Hi I\'m Bar!');

Foo_Package::$foo = $foo;

functionOne(array('id' => 1));

functionTwo(1);

答案 1 :(得分:0)

创建Wordpress时,OOP并不是很受欢迎。事实上,使用PHP5,OOP变得更加严肃,Wordpress开始使用... PHP3?

此外,我认为为了方便新手用户,Wordpress开发人员选择使用过程函数而不是对象和类。如果您对WP核心没有深入的了解,那就更简单了。

我认为这没有特定的名称。