php查询对象是否存在,如何检查PHP中的对象是否已经存在?

这篇博客讨论了在PHP中如何使用单例模式来确保类只有一个实例,并且提供了如何在`index.php`中检查和创建`WidgetFactory`类对象的示例。通过使用单例,可以避免全局变量并控制类的实例化过程。构造函数设置为受保护的以防止外部直接创建对象。文章还提到了使用`getInstance()`静态方法来获取类的实例。
摘要由CSDN通过智能技术生成

标签:php

请考虑以下代码方案:

//widgetfactory.class.php

// define a class

class WidgetFactory

{

var $oink = 'moo';

}

?>

//this is index.php

include_once('widgetfactory.class.php');

// create a new object

//before creating object make sure that it already doesn't exist

if(!isset($WF))

{

$WF = new WidgetFactory();

}

?>

widgetfactory类在widgetfactoryclass.php文件中,我已将此文件包含在我的index.php文件中,我的所有站点操作都通过index.php运行,即对于此文件包含的每个操作,现在我想创建widgetfactory类的对象只要它已经不存在了.我为此目的使用isset(),还有其他更好的选择吗?

解决方法:

使用全局变量可能是实现此目的的一种方法.执行此操作的常见方法是单例实例:

class WidgetFactory {

private static $instance = NULL;

static public function getInstance()

{

if (self::$instance === NULL)

self::$instance = new WidgetFactory();

return self::$instance;

}

/*

* Protected CTOR

*/

protected function __construct()

{

}

}

然后,稍后,您可以检索实例,而不是检查全局变量$WF:

$WF = WidgetFactory::getInstance();

WidgetFactory的构造函数声明为protected,以确保实例只能由WidgetFactory本身创建.

标签:php

来源: https://codeday.me/bug/20190715/1470050.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值