静态成员包括静态属性和静 态方法,用static定义,用::方式访问
相当于是某一个类的公共属性,不管对象是否实例化时,他都存在并且可以使用;当实例化的对象被销毁时,静态属性和方法不会随着对象面销毁;
例子:当实例化及销毁对象时,记录对象的个数
<?php
class Student{
public static $count=0;
public function __construct(){
Student::$count++;//也可写成self::$count++
}
public function __destruct(){
Student::$count--;//也可写成self::$count--
}
}
$o1=new Student();
$o2=new Student();
$o3=new Student();
unset($o2);
echo Student::$count;
?>
运行结果:2
例子:静态方法
<?php
class Student{
//静态属性
public static $count=0;
public function __construct(){
Student::$count++;//也可写成self::$count++
}
public function __destruct(){
Student::$count--;//也可写成self::$count--
}
//静态方法
public static function f1(){
echo 'static function f1';
}
}
Student::f1();
?>
运行结果:static function f1
例子:静态方法与非静态方法的区别在于$this的使用上,只有使用对象调用非静 态方法时才可以使用$this,静态方法无论如何也不能对$this做处理;
<?php
class Student{
//静态方法
public static function f1(){
var_dump($this);
}
//非静态方法
public function f2(){
var_dump($this);
}
}
$o=new Student();
$o->f1();//null
$o->f2();//object
Student::f1();//null
Student::f2();//null
?>
- 热门文章
- win7中将文件拷贝到虚拟机linux下
- phpexcel设置行高及列宽,背景颜色,
- rabbitmq无法启动
- intellij idea不显示git push按钮
- php7中使用mongodb的aggregate进行
- laravel页面静态化的方法
- centos7.4 64位下swoole安装及配置
- navicate连接mycat报1184错误
- curl设置超时不起作用(CURLOPT_TIM
- devops-jenkins容器为pending状态
- 好评文章
- phpexcel设置行高及列宽,背景颜色,
- php7中使用mongodb的aggregate进行
- intellij idea打开文件所在文件夹
- windows下使用MongoDB Compass Com
- win7中将文件拷贝到虚拟机linux下
- laravel 中悲观锁 & 乐观锁的使用
- 单点登录sso原理及php实现方式及de
- navicate连接mycat报1184错误
- rabbitmq无法启动
- laravel整合dingo/api方法步骤:jwt
- 我的项目
- 【github】www.github.com/hurong241
- 【码云】gitee.com/hu_rong/projects
- 【docker hub】hub.docker.com/repositories/hurong241
- 【packagist】packagist.org/users/hurong241/packages
- 站点信息
- 建站时间:2011年
- 文章数:623篇
- 浏览数:1303109