PHP单例模式实例,连接数据库对类的引用

<?php//单例模式连接数据库class pzhang{    static private $instance;    private static $config;    private $dbase = array(        ‘host‘ => ‘localhost‘,        ‘username‘ =>‘root‘,        ‘password‘=>‘root‘,        ‘dbname‘ =>‘jmyp‘    );    private function __construct(){    }    static public function getInstance(){         if(!self::$instance instanceof self)             self::$instance  = new self();         return self::$instance;    }    public function conn(){        $mysql_db = $this->dbase[‘dbname‘];        self::$config = new mysqli($this->dbase[‘host‘],$this->dbase[‘username‘],$this->dbase[‘password‘]);        self::$config->query(‘set name utf8‘);        self::$config -> select_db($mysql_db);        $sql = "select * from admin";        $row = self::$config->query($sql);        $data = [];        while($tmp = $row->fetch_assoc()){            $data[] = $tmp;        }        echo "<pre>";        print_r($data);        echo "</pre>";        return self::$config;    }}$obj = pzhang::getInstance();$obj->conn();

//单例模式对类的引用class zhangp{    public function system(){        echo "learning more";    }}

class singleCase{    static private $instance;    private $avg;    private function __construct($config){        self::$instance = new $config;    }    static public function getInstance($avg){        if(!self::$instance instanceof self)             new self($avg);        return self::$instance;    }}$obj = singleCase::getInstance(‘zhangp‘);$obj->system();?>

原文地址:https://www.cnblogs.com/isuansuan/p/9759535.html

时间: 2024-11-10 07:34:02

PHP单例模式实例,连接数据库对类的引用的相关文章

PHP用单例模式实现一个数据库类

使用单例模式的出发点: 1.php的应用主要在于数据库应用, 所以一个应用中会存在大量的数据库操作, 使用单例模式, 则可以避免大量的new 操作消耗的资源. 2.如果系统中需要有一个类来全局控制某些配置信息, 那么使用单例模式可以很方便的实现. 这个可以参看ZF的FrontController部分. 3.在一次页面请求中, 便于进行调试, 因为所有的代码(例如数据库操作类db)都集中在一个类中, 我们可以在类中设置钩子, 输出日志,从而避免到处var_dump, echo. 创造单例注意: 1

jdbc连接数据库工具类

1 import java.lang.reflect.Field; 2 import java.sql.Connection; 3 import java.sql.DriverManager; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.ResultSetMetaData; 7 import java.sql.SQLException; 8 import java.util

PHP中”单例模式“实例讲解【转】

转自::http://www.cnblogs.com/hongfei/archive/2012/07/07/2580994.html 假设我们需要写一个类用来操作数据库,并同时满足以下要求: ①SqlHelper类只能有一个实例(不能多)②SqlHelper类必须能够自行创建这个实例③必须自行向整个系统提供这个实例,换句话说:多个对象共享一块内存区域,比如,对象A设置了某些属性值,则对象B,C也可以访问这些属性值(结尾的例子很好的说明了这个问题) 1 <?php 2 class SqlHelpe

PHP单例模式的数据库操作类

自己练习写的单例模式的数据库操作类 1 <?php 2 //先建立单模:三私(私有变量.私有构造函数.私有的__clone函数)一公(公有方法),再封装连接数据库,以及返回结果 3 class MySQLDB{ 4 //定义连接数据库需要用到的私有属性 5 private $host; //主机id 6 private $port; //端口号 7 private $user; //用户 8 private $psw; //密码 9 private $dbname; //数据库名称 10 pri

接收本类的引用demo

package String; /* * 简单的写了一个接收本类的引用 * 所谓引用:引用传递就是指将堆内存空间的使用权交给多个栈内存空间 * 接收本类的引用:实际上在对象引用传递上也可以在一个类中接收自己的本类对象的实例,而且接收完之后,方便通过此对象直接进行本类中封装属性的访问 */ public class StringDemo3 { public static void main(String[] args) { person p2 = new person(); p2.settemp(

java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)

class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } } 运行: [[email protected] java

关于实例成员与类成员的区别

1.实例成员 实例成员包括实例成员变量和实例成员方法,实例成员变量(对象的字段)和方法(对象的方法)是隶属于对象的,实例变量的值代表了该对象的状态,实例成员方法代表了该对象的行为.只有创建了对象之后才能访问实例成员变量和实例成员方法,通过"对象名.变量名(方法名)"的方法可以访问实例成员 2.类成员 类成员(静态成员)需要用关键字static标识,类成员包括,类成员变量和类成员方法,类成员是隶属于类的,意思是说通过类名可以直接访问类成员变量或调用类成员方法,即使没有创建对象,也能够引用

设计模式 - 单例模式mysql数据库操作类

待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php'; $db = MySQLDB::getInstance('127.0.0.1:3306', 'root', '123456', 'test'); $db->insertData(); instance.php 单例操作类: <?php /** * 单例模式MySQL数据库操作类 */ clas

类相互引用问题

在C语言中,如果头文件不加任何保护的话,两个头文件相互包含会导致编译出错,如下面两个文件: a.h #include "b.h" b.h #include "a.h" 使用gcc编译的话,会报下面的错误: from main.c:2:b.h:1:15: error: #include nested too deeply #include "a.h" ^make: *** [all] Error 1 这是一个无限循环,如果加了保护性的代码,则不会出