Login
网站首页 > 文章中心 > 其它

php中的对象池模式

作者:小编 更新时间:2023-08-02 07:56:52 浏览量:399人看过

php中有哪些设计模式,举例说明应用场景

PHP 一般有五种常见的设计模式

工厂模式

它具有创建对象的某些方法.可以使用工厂类创建对象,而不直接使用 new.

例如:

php

php中的对象池模式-图1

interface IUser

{

function getName();

}

class User implements IUser

public function __construct( $id ) { }

public function getName()

return "Jack";

class UserFactory

public static function Create( $id )

return new User( $id );

$uo = UserFactory::Create( 1 );

echo( $uo-getName()."\n" );

另外四种是:观察者模式,单元素模式,命令链模式,策略模式.例子可以百度一搜.

怎么理解php中的设计模式

①.、单例模式:PHP中的对象生存期间是从该脚本开始一直到该脚本结束为止,所以呢PHP的单例模式只是在一个页面中(这里可能包含很多其他页面,不是狭义的单页面)多次用到该对象时才会起作用,多次用到时不去重复的new对象(多个人做一个项目时,难免会碰到一次请求中多次实例一个对象的情况),将不会耗费不必要的资源(数据控连接操做效果很明显),还有一点就是可以保证整个脚本中都是同一个对象,这种模式是怎么实现的呢,他的实现有几个要注意的点:

a. 首先就是要将__construct()方法定义为私有方法,这样就不能通过new来得到一个新的实例了,单例模式不能在外部进行实例化,这能字自身内部进行实例化;

PHP设计模式之单例模式

单例模式

:使得类的一个对象成为系统中的唯一实例.

PHP中使用单例模式最常见的就是数据库操作了.避免在系统中有多个连接数据库的操作,浪费系统资源的现象,就可以使用单例模式.每次对数据库操作都使用一个实例.

简单示例

class

AClass

//

用来存储自己实例

public

static

$instance;

私有化构造函数,防止外界实例化对象

private

function

__construct()

{}

私有化克隆函数,防止外界克隆对象

__clone()

静态方法,单例访问统一入口

getInstance()

if

(!(self::$instance

instanceof

self)){

self::$instance

=

new

self();

return

self::$instance;

test

test()

"done";

BClass

extends

AClass{

获取实例

$aclass

AClass::getInstance();

$bclass

BClass::getInstance();

调用方法

echo

$aclass-test();

对一些比较大型的应用来说,可能连接多个数据库,那么不同的数据库公用一个对象可能会产生问题,比如连接句柄的分配等,我们可以通过给$instance变成数组,通过不同的参数来控制

DB

$instance

array();

$conn;

__construct($host,

$username,

$password,

$dbname,

$port)

$this-conn

mysqli($host,

$port);

getInstance($host,

$key

$host.":".$port;

(!(self::$instance[$key]

self::$instance[$key]

self($host,

$port);#实例化

self::$instance[$key];

//query

query($ql)

$this-conn-query($sql);

//释放资源

__destruct(){

$this-conn-close();

PHP中怎样创建一个空对象

php中显示数组与对象的实现代码

使用

print_r

(

$array/$var

)

print

是打印的意思,而r则取自Array的单词,那么该函数的功能就是打印数组内容,它既可以打印数组内容,也可以打印普通的变量.

($_REQUEST)

;

($_GET)

/*

打印使用GET方法传递的表单内容*/

print_r($_POST)

打印使用表单POST方法传递过的数组内容*/

var_dump

($object/$array/$var)

var

代表变量(Variable),变量包括对象、数组以及标量变量,dump有倒出之意,加在一块,就是将变量或对象的内容全部输出出来.

var_dump($DB)

/*打印$DB数据库连接对象的内容*/

var_dump($fileHandle)

/*打印文件句柄对象的内容*/

var_dump($Smarty)

/*打印Smarty模板对象*/

var_export($object/$array/$var)

输出或返回一个变量的字符表示.此函数返回关于传递给函数的变量的结构信息,它和print_r()类似,不同的是其返回的表示是合法的PHP代码.可以通过将函数的第二个参数设置为TRUE,从而返回变量的表示.

复制代码

代码如下:

$a

array

array("a","b","c"))

var_export

($a)

"br"

$v

,

TRUE)

上例中,$v

表示返回的是PHP的源代码,可以直接用PHP脚本的数组文件中.

相关说明:

以上三个函数都可以打印对象的值、系统函数值以及数组的内容;

、print、printf可以打印变量内容,但不能显示数组及系统超级变量数组;

var_dump不仅可以打印数组、标量变量,还可以打印对象的内容;

var_dump语句不仅能打印变量、数组内容,还可以显示布尔变量和资源(Resource)的内容;

函数返回关于传递给该函数的变量的结构信息,和

var_dump()函数类似,不同的是其返回的内容是合法的PHP代码.

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章