批改状态:合格
老师批语:
<?php/** 类的静态成员 static 关键字 标志静态属性/方法 静态成员只能有本类来调用 为所有实例共享* 优点:1.在内存中存在多个实例,静态成员在内存中只占一份,为所有实例共享,普通成员以实例的方式会创建多个内存* 2.静态成员的执行效率比实例化高,不用创建对象就可以直接调用* 缺点:静态成员不自动进行销毁,而实例化的则可以销毁** */class User{public static $name='胡歌';protected $_config = ['auth_on'=>'true','auth_type'=>1 //认证方式 1事实认证 2位登录认证];public static $nation ='China';private $salary;//static $count=0; //记录已登录用户的总数static $count=0;public function __construct($name,$salary){//静态成员与类的实例无关 不能用$this访问,用self::self::$name=$name;$this->salary=$salary;self::$count ++;}public function getCount(){echo $this->salary;return sprintf('目前该网站的在线人数为%d<br>',self::$count);}//对象被销毁时自动调用public function __destruct(){self::$count --;}}/**1. 静态方法不能访问类中的普通属性(此时还不存在对象)*2. 普通成员是对象级别的存在,只能通过对象访问 默认提供 $this指针*3. 静态成员是类级别的存在 随着类的加载而加载 没有提供$this指针,优先与对象存在 只能用类引用self::访问*4.//加载类文件 类的自动加载器require 'autoload.php';$user1= new User('古力拉扎',25000);$user2= new User('刘亦菲',30000);$user3= new User('史蒂夫',30000);unset($user3); //自动调用__destructecho User::getCount();echo User::$name;//使用对象引用也可以访问静态成员 不推荐//echo $user1->getCount();echo $user2->getCount();echo User::$nation;* **/
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号