Home  >  Article  >  php教程  >  PHP里的单例类写法实例

PHP里的单例类写法实例

WBOY
WBOYOriginal
2016-06-13 08:59:54967browse

PHP里的单例类写法实例

   这篇文章主要介绍了PHP里的单例类写法实例,本文直接给出代码实例,需要的朋友可以参考下

  PHP里的单实例类在进行数据交换,节省内存上还是很有意义的。写个简单例子。

  类1,单实例类本身:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

class UTIL {

private static $instance;

public function get() {

if (!self::$instance) {

self::$instance = new UTIL();

}

return self::$instance;

}

public $number = 10;

public function change($num) {

$this->number += $num;

}

public function getNum() {

return $this->number;

}

}

  类2,使用前述单实例类的应用类:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

class SINGLEA {

private $numInst;

function __construct() {

$this->numInst = UTIL::get();

}

public function change($num) {

$this->numInst->change($num);

}

public function getNum() {

return $this->numInst->getNum();

}

}

  类3,同类2:

  ?

1

2

3

4

5

6

7

8

9

10

11

12

class SINGLEB {

private $numInst;

function __construct() {

$this->numInst = UTIL::get();

}

public function change($num) {

$this->numInst->change($num);

}

public function getNum() {

return $this->numInst->getNum();

}

}

  最后是调用的地方:

  ?

1

2

3

4

5

6

7

8

$instA = new SINGLEA();

$instA->change(100);

var_dump('SINGLEA CHANGED: ');

var_dump($instA->getNum());

$instB = new SINGLEB();

$instB->change(-510);

var_dump('SINGLEB CHANGED: ');

var_dump($instB->getNum());

  最后的显示结果:

  ?

1

2

3

4

string'SINGLEA CHANGED: ' (length=17)

int110

string'SINGLEB CHANGED: ' (length=17)

int-400

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn