0812静态成员方法
16lz
2021-08-31
<?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); //自动调用__destruct
echo User::getCount();
echo User::$name;
//使用对象引用也可以访问静态成员 不推荐
//echo $user1->getCount();
echo $user2->getCount();
echo User::$nation;
* **/
更多相关文章
- 用小鸟云服务器搭建网站常用的伪静态设置规则
- 给定一个数组筛选其偶数成员组成新的数组返回
- OOP面向对象基本演绎
- public protected private 的应用
- oop父类、子类、静态成员的总结及autoload自动加载的初步进阶
- opp基础:类与对象的 类的继承和调用 构造器 静态成员等
- 作业内容:oop基础:请举例实例演绎以下难点 1. 类(对象抽象化的结
- php面向对象之对象成员,静态成员,继承
- 给定一个数组$arr = [23,3,45,6,78,8,34],筛选其偶数成员组成新