PHP中的对象查找,不使用Singleton

时间:2014-08-19 09:54:09

标签: php oop

在PHP中,我们可以使用单例(例如

)轻松引用any classes中的对象
$obj = SingletonClass::getInstance();

如果我不使用单身人士,还有其他选择吗?

3 个答案:

答案 0 :(得分:0)

  

如果我没有使用Singleton,还有其他选择吗?

是的,这个东西叫做依赖注入,之前已经讨论过很多次了。 基本上,这意味着,您实例化一个类,然后将其实例传递给另一个需要它的类。例如:

$pdo = new PDO(....);

$userGateway = new UserGateway($pdo);
$imageGateway = new ImageGateway($pdo);

如您所见,这些类共享相同的实例。

答案 1 :(得分:-1)

我会推荐单身,但你可以尝试这样的事情:

$GLOBAL = null;

每次你想要发起它:

if ($GLOBAL != null()) {
    $GLOBAL = new YourObject();
}

答案 2 :(得分:-2)

只需在全局范围内实例化您的对象即可。下面是一个例子:

#file1.php
require_once('file2.php');
$instance = new ClassName();

#file2.php
function do_something()
{
    global $instance;
    #do stuff with with
}