首页 > 其他 > 详细

静态变量和静态方法的生命周期

时间:2016-02-03 10:34:15      阅读:174      评论:0      收藏:0      [点我收藏+]

 

 先看一段代码:

 

技术分享
 1技术分享<?php
 2技术分享  class User
 3技术分享  {
 4技术分享           static private $counter = 1;
 5技术分享           
 6技术分享           public function __construct()
 7技术分享           {
 8技术分享                   self::$counter++;
 9技术分享           }
10技术分享
11技术分享           static public function getCount()
12技术分享           {
13技术分享                   return self::$counter;
14技术分享           }
15技术分享           
16技术分享           public function __destruct()
17技术分享           {
18技术分享                   self::$counter--;
19技术分享           }
20技术分享  }
21技术分享    
22技术分享  echo ‘run static getCount:‘.User::getCount().‘<br>‘;
23技术分享  
24技术分享  $user1 = new User();
25技术分享  $user2 = new User();
26技术分享  echo ‘run user1 getCount:‘.$user1->getCount().‘<br>‘;
27技术分享  unset($user1);
28技术分享  echo ‘run user2 getCount:‘.$user2->getCount();
29技术分享
30技术分享?>
31技术分享
32技术分享运行结果:
33技术分享
34技术分享run static getCount:1
35技术分享run user1 getCount:3
36技术分享run user2 getCount:2
技术分享

 

     通过如上代码可以得到相关结论:

          1、静态变量和静态方法,不需要new一个对象就可以直接使用;

          2、当对象被unset后,仍然能够继续使用。

     由此可知,静态变量和静态方法,在进程创建的时候就被创建了,而不是在对象创建的时候才被创建,并且其生命周期同该进程的生命周期一样长,其占用的系统资源是初始化进程申请资源的一部分。

静态变量和静态方法的生命周期

原文:http://www.cnblogs.com/bzphp/p/5179034.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!