首页 > 开发 > PHP > 正文

PHP里的单例类写法实例

2024-05-04 23:36:52
字体:
来源:转载
供稿:网友

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

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

类1,单实例类本身:

 

 
  1. class UTIL { 
  2. private static $instance; 
  3. public function get() { 
  4. if (!self::$instance) { 
  5. self::$instance = new UTIL(); 
  6. return self::$instance; 
  7. public $number = 10; 
  8. public function change($num) { 
  9. $this->number += $num; 
  10. public function getNum() { 
  11. return $this->number; 

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

 

 
  1. class SINGLEA { 
  2. private $numInst; 
  3. function __construct() { 
  4. $this->numInst = UTIL::get(); 
  5. public function change($num) { 
  6. $this->numInst->change($num); 
  7. public function getNum() { 
  8. return $this->numInst->getNum(); 

类3,同类2:

 

 
  1. class SINGLEB { 
  2. private $numInst; 
  3. function __construct() { 
  4. $this->numInst = UTIL::get(); 
  5. public function change($num) { 
  6. $this->numInst->change($num); 
  7. public function getNum() { 
  8. return $this->numInst->getNum(); 

最后是调用的地方:

 

 
  1. $instA = new SINGLEA(); 
  2. $instA->change(100); 
  3. var_dump('SINGLEA CHANGED: '); 
  4. var_dump($instA->getNum()); 
  5. $instB = new SINGLEB(); 
  6. $instB->change(-510); 
  7. var_dump('SINGLEB CHANGED: '); 
  8. var_dump($instB->getNum()); 

最后的显示结果:

 

 
  1. string'SINGLEA CHANGED: ' (length=17) 
  2. int110 
  3. string'SINGLEB CHANGED: ' (length=17) 
  4. int-400 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表