1 <?php
2
3 class Singleton
4 {
5 private static $_instance;
6
7 /**
8 * 构造函数私有,不允许在外部实例化
9 */
10 private function __construct()
11 {
12
13 }
14
15 /**
16 * 防止对象实例被克隆
17 */
18 private function __clone()
19 {
20
21 }
22
23 /**
24 * 防止被反序列化
25 */
26 private function __wakeup()
27 {
28
29 }
30
31 public static function getInstance()
32 {
33 if (!self::$_instance instanceof self) {
34 self::$_instance = new Singleton();
35 }
36
37 return self::$_instance;
38 }
39
40 public function test()
41 {
42 echo "This is test";
43 }
44 }
45
46
47 $a = Singleton::getInstance();
48
49 echo gettype($a);
50 echo "<br/>";
51 $a->test();
52
53 // $b = clone $a;
54 // $c = new Singleton();
55
56 $d = serialize($a);
57 $e = unserialize($d);