1. <?php
  2. /*
  3. * 类的静态成员 static 关键字 标志静态属性/方法 静态成员只能有本类来调用 为所有实例共享
  4. * 优点:1.在内存中存在多个实例,静态成员在内存中只占一份,为所有实例共享,普通成员以实例的方式会创建多个内存
  5. * 2.静态成员的执行效率比实例化高,不用创建对象就可以直接调用
  6. * 缺点:静态成员不自动进行销毁,而实例化的则可以销毁
  7. *
  8. * */
  9. class User{
  10. public static $name='胡歌';
  11. protected $_config = [
  12. 'auth_on'=>'true',
  13. 'auth_type'=>1 //认证方式 1事实认证 2位登录认证
  14. ];
  15. public static $nation ='China';
  16. private $salary;
  17. //static $count=0; //记录已登录用户的总数
  18. static $count=0;
  19. public function __construct($name,$salary)
  20. {
  21. //静态成员与类的实例无关 不能用$this访问,用self::
  22. self::$name=$name;
  23. $this->salary=$salary;
  24. self::$count ++;
  25. }
  26. public function getCount(){
  27. echo $this->salary;
  28. return sprintf('目前该网站的在线人数为%d<br>',
  29. self::$count);
  30. }
  31. //对象被销毁时自动调用
  32. public function __destruct(){
  33. self::$count --;
  34. }
  35. }
  36. /*
  37. *1. 静态方法不能访问类中的普通属性(此时还不存在对象)
  38. *2. 普通成员是对象级别的存在,只能通过对象访问 默认提供 $this指针
  39. *3. 静态成员是类级别的存在 随着类的加载而加载 没有提供$this指针,优先与对象存在 只能用类引用self::访问
  40. *4.
  41. //加载类文件 类的自动加载器
  42. require 'autoload.php';
  43. $user1= new User('古力拉扎',25000);
  44. $user2= new User('刘亦菲',30000);
  45. $user3= new User('史蒂夫',30000);
  46. unset($user3); //自动调用__destruct
  47. echo User::getCount();
  48. echo User::$name;
  49. //使用对象引用也可以访问静态成员 不推荐
  50. //echo $user1->getCount();
  51. echo $user2->getCount();
  52. echo User::$nation;
  53. * **/

更多相关文章

  1. 用小鸟云服务器搭建网站常用的伪静态设置规则
  2. 给定一个数组筛选其偶数成员组成新的数组返回
  3. OOP面向对象基本演绎
  4. public protected private 的应用
  5. oop父类、子类、静态成员的总结及autoload自动加载的初步进阶
  6. opp基础:类与对象的 类的继承和调用 构造器 静态成员等
  7. 作业内容:oop基础:请举例实例演绎以下难点 1. 类(对象抽象化的结
  8. php面向对象之对象成员,静态成员,继承
  9. 给定一个数组$arr = [23,3,45,6,78,8,34],筛选其偶数成员组成新

随机推荐

  1. web基础之自动处理表单填装javabean
  2. 给JavaScript24条最佳实践
  3. Java之美[从菜鸟到高手演变]之Java学习方
  4. 小聊天程序,访问文件之间的变量
  5. 使用SAX Filter将新元素插入XML文件
  6. 《Java 应用架构设计 模块化与OSGI》 读
  7. 在文件中添加新数据后,JComboBox不会刷新
  8. java中Date无法获取数据库时分秒的问题
  9. Java实践(一)---程序设计概述
  10. Java - 检查所有行中现有文本的.txt