不能在PHP中两次实例化同一个类

时间:2017-05-04 13:15:48

标签: php class

我有以下代码,我希望通过传递$ redisdb参数连接到2台服务器。 不幸的是,第二个实例获得了第一个连接。

dirs=$1
for dir in $dirs
do
        ls -R  $dir             
done

我做错了什么?

Picasso.with(getContext()).load(stolperstein.getImageHeaderUrl()).into(user_header_photo)

3 个答案:

答案 0 :(得分:0)

RedisHandler 类是在Singleton模式下开发的,即如果已经存在连接,则返回现有连接,因此您将遇到此问题。

您可以使用并关闭第一个连接,然后使用第二个连接来解决问题。

答案 1 :(得分:0)

只要您的变量或函数成员与对象的当前实例无关,就会使用static关键字。

这是你的

static $db

对于 RedisHandler 的每个实例都是相同的。

第一次实例 $ db为空,但在第二次实例中,因为 $ db是静态的,变量不会是 null ,所以你不能实现另一个 Redis 因为条件 if(self :: $ db === null)

答案 2 :(得分:0)

我将PHP与Java一起使用来实例化生成excel文件的excel类。

$ excel =新Excel(...)

然后我想生成第二个文件。 unset和$ excel = null无效。

它可以和:

$ excel = $ excel-> Excel(...)