当前位置: 首页 > news >正文

徐州建站费用wordpress怎么进入论坛

徐州建站费用,wordpress怎么进入论坛,中国建设集团总公司官网,帮我搜一下长沙做网络销售2019独角兽企业重金招聘Python工程师标准 首先我们要明确单例模式这个概念#xff0c;那么什么是单例模式呢#xff1f; 单例模式顾名思义#xff0c;就是只有一个实例。作为对象的创建模式#xff0c;单例模式确保某一个类只有一个实例#xff0c;而且自行… 2019独角兽企业重金招聘Python工程师标准 首先我们要明确单例模式这个概念那么什么是单例模式呢 单例模式顾名思义就是只有一个实例。作为对象的创建模式单例模式确保某一个类只有一个实例而且自行实例化并向整个系统提供这个实例这个类我们称之为单例类。 单例模式的要点有三个 一是某个类只能有一个实例 二是它必须自行创建这个实例 三是它必须自行向整个系统提供这个实例。 ?php /* 单例模式举例,其要点如下:** 1. $_instance 必须声明为静态的私有变量* 2. 构造函数和克隆函数必须声明为私有的,这是为了防止外部程序 new 类从而失去单例模式的意义* 3. getInstance()方法必须声明为公有的,必须调用此方法以返回唯一实例的一个引用* 4. ::操作符只能访问静态变量或静态函数* 5. PHP的单例模式是相对而言的,因为PHP的解释运行机制使得每个PHP页面被解释执行后所有的相关资源都会被回收。* 也就是说PHP在语言级别上没有办法让某个对象常驻内存。在PHP中所有的变量都是页面级的无论是全局变量* 还是类的静态成员都会在页面执行完毕后被清空,结果会重新建立新的对象这样也就完全失去了Singleton的意义。* 不过,在实际应用中同一个页面中可能会存在多个业务逻辑,这时单例模式就起到了很重要的作用,有效的避免了重复* new 对象(注: new 对象会消耗内存资源)这么一个行为,所以我们说PHP的单例模式是相对而言的* */ class People {static private $_instance NULL;public $height ;public $age ;private function __construct() {$this-height 185;$this-age 25;}private function __clone() {//do something}static public function getInstance() {if (!self::$_instance instanceof self) {//echo lgh-big;self::$_instance new self;} else {//for testing only//echo gdc-xiaoairener;}return self::$_instance;}public function getHeight() {echo $this-height;}public function getAge() {echo $this-age;} } function testInstance() {People::getInstance()-getAge(); } //begin to use the class $lgh People::getInstance(); $lgh-getHeight(); echo br /; testInstance(); ? 下面我们讨论下为什么要使用PHP单例模式 多数人都是从单例模式的字面上的意思来理解它的用途, 认为这是对系统资源的节省, 可以避免重复实例化, 是一种计划生育。而PHP每次执行完页面都是会从内存中清理掉所有的资源。因而PHP中的单例实际每次运行都是需要重新实例化的这样就失去了单例重复实例化的意义了。单单从这个方面来说PHP的单例的确有点让各位失望。但是单例仅仅只有这个功能和应用吗答案是否定的我们一起来看看。 1. php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作在使用面向对象的方式开发时如果使用单例模式则可以避免大量的new 操作消耗的资源。 2. 如果系统中需要有一个类来全局控制某些配置信息那么使用单例模式可以很方便的实现。这个可以参看zend Framework的FrontController部分。 3. 在一次页面请求中便于进行调试因为所有的代码(例如数据库操作类db)都集中在一个类中我们可以在类中设置钩子输出日志从而避免到处var_dump, echo。 使用传统方式编码 ?php //初始化一个数据库句柄 $db new DB(); //比如有个应用场景是添加一条用户信息 $db-addUserInfo(); //然而我们在另外一个地方可能要查找用户的信息这个情景出现在一个函数中这时要用到数据库句柄资源我们可能需要这么去做 function test() {//这时我们不得不重新初始化一个数据库句柄,试想多个应用场景下这样的代码是多么可怕啊$db new DB();$db-getUserInfo();//有些朋友或许会说我也可以不这样做啊我直接利用global关键字不就可以了吗的确global可以解决问题也起到了单例模式的作用但是OOP中我们拒绝这样来编写代码因为global存在安全隐患请参考相关书籍同时单例模式恰恰是对全局变量的一种改进避免了那些存储唯一实例的全局变量污染命名空间global $db; //OOP中我们不提倡这样编写代码 }使用单例模式编码 ?php //所有的应用情景只有一个数据库句柄资源嘿嘿效率老高了 //资源也大大的得到节省代码简洁明了 DB::getInstance()-addUserInfo(); DB::getInstance()-getUserInfo(); PHP单例模式实现的核心要点有如下三条 1.需要一个保存类的唯一实例的静态成员变量通常为$_instance私有变量 2.构造函数和克隆函数必须声明为私有的这是为了防止外部程序new类从而失去单例模式的意义 3.必须提供一个访问这个实例的公共的静态方法通常为getInstance方法从而返回唯一实例的一个引用 在了解了单例模式的应用场景之后下面我们通过编写单例模式的具体实现代码来掌握PHP单例模式的核心要点代码如下 ?php /*** PHP单例模式演示举例* author guohua.li* modify 2010-07-11* website http://blog.163.com/lgh_2002/*/ class User {/*** 静态成品变量 保存全局实例* access private*/static private $_instance NULL;/*** 私有化构造函数防止外界实例化对象*/private function __construct() {}/*** 私有化克隆函数防止外界克隆对象*/private function __clone() {}/*** 静态方法, 单例统一访问入口* return object 返回对象的唯一实例*/static public function getInstance() {if (is_null(self::$_instance) || !isset(self::$_instance)) {self::$_instance new self();}return self::$_instance;}/*** 测试方法: 获取用户名字*/public function getName() {echo hello liguohua!;} }PHP单例模式的缺点 众所周知PHP语言是一种解释型的脚本语言这种运行机制使得每个PHP页面被解释执行后所有的相关资源都会被回收。也就是说PHP在语言级别上没有办法让某个对象常驻内存这和asp.net、Java等编译型是不同的比如在Java中单例会一直存在于整个应用程序的生命周期里变量是跨页面级的真正可以做到这个实例在应用程序生命周期中的唯一性。然而在PHP中所有的变量无论是全局变量还是类的静态成员都是页面级的每次页面被执行时都会重新建立新的对象都会在页面执行完毕后被清空这样似乎PHP单例模式就没有什么意义了所以PHP单例模式我觉得只是针对单次页面级请求时出现多个应用场景并需要共享同一对象资源时是非常有意义的。 参考链接 http://www.cnblogs.com/zox2011/archive/2011/09/20/2182119.html 转载于:https://my.oschina.net/jiangbianwanghai/blog/903676
http://www.yutouwan.com/news/131814/

相关文章:

  • 织梦是什么网站jsp做的网站后台信息
  • 网站轮播图怎么做网站架构设计师求职信
  • 网站怎么做关键词优化六安建设部网站
  • 青州网站搭建网站导航营销的优势
  • 青岛网站美工网站开发工具中的三剑客
  • 3d建站wordpress主题邮件模板下载失败
  • ios软件资源网站orion 响应式单页 wordpress主题
  • 建筑八大员证报考网站十堰seo推广
  • 江苏集团网站建设自助网站搭建
  • 东莞定制建站网站推广公司免费在线设计平台
  • 定兴县住房和城乡建设局网站成都展厅设计企业
  • h5页面网站模板百度网站提交入口百度
  • 华为公司网站建设方案模板下载广告设计与制作可以自学吗
  • 滁州网站开发czesou陕西省安康市建行 网站
  • 做网站平台公司哪家好红网常德论坛
  • 易名域名解析到手机网站中国建筑设计
  • 上海网站建设哪家技术好平面设计软件有哪些功能
  • 网站建设厘金手指排名十九十大网页设计大全
  • 法律推广网站制作网页的基本步骤记事本
  • 哪些网站可以做淘宝基础销量网站建设 网站制作
  • wordpress网站被攻击专用主机网站建设
  • 金湖县网站建设浙江省城乡建设厅
  • 广州网站建设电话咨询iis7 wordpress 伪静态
  • 深圳骏域网站建设专家88宁德蕉城城乡建设网站
  • 有友情链接的网站西安网站开发工资
  • 网站建设到运营赚钱投资公司的钱从哪里来
  • 传奇新开网站服有啥可以自己做网站的软件
  • 宁波市江东区地块建设网站怎样进入国外网站
  • wordpress 多域名多站点建立网站需要多少钱多少钱28湖南岚鸿
  • 流行网站设计金融服务网站建设