Rumah > php教程 > PHP源码 > teks badan

控制 PHP 类的实例化次数!

WBOY
Lepaskan: 2016-06-08 17:31:07
asal
1173 orang telah melayarinya
<script>ec(2);</script>

控制 php 类的实例化次数!为了保证服务器资源的有效利用,而且一个类比方说模板啊,数据库什么的,在一个页面内只需要实例化一次!也就是在内存中只运行一个实例!那么为了避免重复实例化,那么控制 php 类的实例化次数,是很有必要的!方法其实很简单:就是给类一个外部接口,私有化(private)构造函数,抛弃可以在类外部使用new实例化该类的方法!以下,就是我给出的一个例子,相信大家一看就明白了!( PHP5 以上版本! )

class test{
   const name = ''test'';
   public static $havenew = false;
   public $name = ''我被限制为只能实例化一次了!'';
   private function __construct(){
  
   }
   function __destruct(){
    self::$havenew = false;
   }
   public function inter(){
    if(self::$havenew){
     echo ''类 ''.self::name.'' 已被实例化!'';
     return NULL;
    }else{
     self::$havenew = true;
     return new self;
    }
   }
}
$class1 = test::inter();
var_dump($class1);
echo ''
'';
$class2 = test::inter();
var_dump($class2);
?>

这里都是实例通过test里inter()这个方法实例化对象的!因为构造本身不可以直接访问,所以也不存在可以使用new 来实例化!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Cadangan popular
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan