2019独角兽企业重金招聘Python工程师标准>>>

<?php
//要解决的问题 在一个方法中多次调用类
//多次调用父类相同的类
class Pdoo {public function __construct(){}//这是个数据库的类function select($name) {echo "正宗" . $name;}
}
class Conn {static $db;private function __construct() {}private function __clone() {}//返回的的是数据库的连接 而非Base类public static function getInstance() {if (self::$db == null) {self::$db = new Pdoo ();}return self::$db;}//这个方法是无效的function select($name) {echo $name;}}
class Db {static $db;static $instanceInternalCache;private function __construct() {//初始话 跟连接数据库没有任何关系的}private function __clone() {}//不能在这里实例化 否则数据库连接就无效了public static function getDb() {}//这里解决 在同一个方法中多次调用A不会被多次实例化//解决不了多个派生类被实例化 也就是有多少派生类 数据库就要连接多少次public static function getInstance($model) {if (self::$instanceInternalCache [$model] == NULL) {self::$instanceInternalCache [$model] = new $model ();}return self::$instanceInternalCache [$model];}function select($name) {Conn::getInstance ()->select ( $name );}
}class A extends Db {function s($name) {$this->select($name);}public static function instance() {return parent::getInstance ( __CLASS__ );}
}class B extends Db {function s($name) {$this->select($name);}public static function instance() {return parent::getInstance ( __CLASS__ );}
}
class Main {public function t() {A::instance ()->select ( "1" );A::instance ()->select ( "11" );B::instance ()->select ( "2" );}
}
$t = new Main ();
$t->t ();

转载于:https://my.oschina.net/u/554046/blog/302413

php 派生类 数据库连接 单例模式 xhprof实测 高效连接相关推荐

  1. 玩转JDBC打造数据库操作万能工具类JDBCUtil,加入了高效的数据库连接池,利用了参数绑定有效防止SQL注入

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53750584 本文出自[DylanAndroid的博客] 玩转JDBC打造数据 ...

  2. C# 派生类的构造函数

    假定没有为任何类定义任何显式的构造函数,这样编译器就会为所有的类提供默认的初始化构 造函数,在后台会进行许多操作,但编译器可以很好地解决类的层次结构中的所有问题,每个类中 的每个字段都会初始化为对应的 ...

  3. 派生类参数初始化列表和基类构造函数顺序

    今天被问到了一个问题,随便回了一句,父类还没有构建,怎么能初始化父类的成员. 派生类构造函数的参数初始化列表,为什么不能初始化基类的成员? 例如下面的是不可以的 class Rectangle : p ...

  4. C++派生类与基类构造函数调用次序

    本文用来测试C++基类和派生类构造函数,析构函数,和拷贝构造函数的调用次序. 运行环境:SUSE Linux Enterprise Server 11 SP2  (x86_64) #include & ...

  5. c++, 派生类的构造函数和析构函数 , [ 以及operator=不能被继承 or Not的探讨]

    说明:文章中关于operator=实现的示例,从语法上是对的,但逻辑和习惯上都是错误的. 参见另一篇专门探究operator=的文章:<c++,operator=>http://www.c ...

  6. C++中基类与派生类的构造函数和析构函数

    1.Cpp中的基类与派生类的构造函数 基类的成员函数可以被继承,可以通过派生类的对象访问,但这仅仅指的是普通的成员函数,类的构造函数不能被继承.构造函数不能被继承是有道理的,因为即使继承了,它的名字和 ...

  7. C++ 虚函数在基类与派生类对象间的表现及其分析

    近来看了侯捷的<深入浅出MFC>,读到C++重要性质中的虚函数与多态那部分内容时,顿时有了疑惑.因为书中说了这么一句:使用"基类之指针"指向"派生类之对象&q ...

  8. 如何在vc的拆分窗口中使用CFormView派生类

    在编辑CFormView派生类的资源模板的时候,一定要将其Style设置为child,不然程序在编译的时候没错,运行的时候会出现异常:切记切记. 设置: 在该CFormView对话框资源模板中右键-& ...

  9. 定义派生类拷贝构造函数

    2019独角兽企业重金招聘Python工程师标准>>> 如果派生类定义了自己的拷贝构造函数,该拷贝构造函数一般应显式的使用基类的拷贝构造函数初始化对象的基类部分 class Base ...

最新文章

  1. 在Ubuntu 16.04.6 LTS升级python 3.5.x到3.7.3之后导致gnome-ternimal无法打开的解决办法
  2. geoip2 php,Geoip geoip-api-php 库包使用 – 通过ip 找到国家
  3. conda install pytorch torchvision cudatoolkit=10.2 -c pytorch 报错
  4. 中计算散度的函数_荷畔微风 - 在函数计算FunctionCompute中使用WebAssembly
  5. CodeForces - 1316E Team Building(状压dp)
  6. malloc的内存分配之 malloc(0)的内存分配情况
  7. 关于CSS3圆角矩形的一些学习探讨
  8. python使用git进行版本控制-分支管理
  9. C语言数据类型转换详解
  10. Python之turtle画小狗、狮子头和小黄人
  11. python的pandas行数和索引_python – 使用索引值访问Pandas Data Frame行
  12. idea配置java和maven_Maven配置,使用IntelliJ IDEA和Maven创建Java Web项目
  13. ArcView GIS 应用与开发技术(11)-空间分析
  14. Js学习之拖拉事件(drag)
  15. java integer转成负数_Java 十进制和十六制之间的转化(负数的处理)
  16. subclass and extends
  17. ffmpeg滤镜调整颜色明艳和亮度
  18. 新整理的开源Odoo13发布更新的部分功能模块信息
  19. JAVA面试题-文思海辉-花旗银行
  20. It Was a Good Barn

热门文章

  1. 使用程序解决一道逻辑推理题
  2. OpenCV中SVM的使用
  3. c语言判断数组里的数据先递增后递减,查找两个有序序数组(一个递增、一个递减)中第K大的数...
  4. kudu接受kafka消息_Kafka 在车好多
  5. hdfs 创建用户和用户组_hadoop四:linux用户和组命令
  6. 面向对象设计原则_聊聊面向对象的6大设计原则
  7. Java学习总结:56(Stack子类)
  8. Java项目:在线婚纱摄影预定系统(java+javaweb+SSM+springboot+mysql)
  9. Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
  10. 【java】兴唐第三十节课之零三知识点总结