我专门用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();
我只是好奇这是否是一般的计算机科学概念?如果是这样,它有名字吗?或者这是我可以在某处阅读更多内容的东西吗?
答案 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核心没有深入的了解,那就更简单了。
我认为这没有特定的名称。