php静态成员的例子,第七节 类的静态成员 [7]
第七节 类的静态成员 [7]
更新时间:2006年10月09日 00:00:00 作者:
类的静态成员与一般的类成员不同: 静态成员与对象的实例无关,只与类本身有关. 他们用来实现类要封装的功能和数据,但不包括特定对象的功能和数据. 静态成员包括静态方法和静态属性.
静态属性包含在类中要封装的数据,可以由所有类的实例共享. 实际上,除了属于一个固定的类并限制访问方式外,类的静态属性非常类似于函数的全局变量
我们在下例中使用了一个静态属性Counter::$count. 它属于Counter类,而不属于任何Counter的实例.你不能用this来引用它,但可以用self或其它有效的命名表达. 在例子中,getCount方法返回self::$count,而不是Counter::$count.
静态方法则实现类需要封装的功能,与特定的对象无关. 静态方法非常类似于全局函数. 静态方法可以完全访问类的属性,也可以由对象的实例来访问,不论访问的限定语是否是什么.
在6.3例中,getCount是一个普通的方法,用->来调用. PHP建立一个this变量,尽管方法没有使用到.但是,getCount不属于任何对象.在有些情况下,我们甚至希望在不存在有效的对象时调用它,那么就应该使用静态方法. PHP将不在静态方法内部建立this变量,即使你从一个对象中调用它们.
例子6.7由6.3改变getCount为静态方法而来. Static关键字不能阻止一个实例用->运算符来调用getCount,但PHP将不在方法内部建立this变量.如果你使用this->来调用,将会出错.
//6.3例指第四节--构造函数和析构函数中的例子(参看前文),通过两个例子的比较,你可以很好掌握
//static方法与普通方法之间的区别.
你可以写一个方法通过判断this是否建立来显示是否它被静态地或者非静态地调用. 当然,如果你用了static 关键字,不管它怎样被调用,这个方法总是静态的.
你的类也可以定义常量属性,不需要使用public static,只需要用const关键字即可. 常量属性总是静态的.它们是类的属性,而不是实例化该类的对象的属性.
Listing 6.7 Static members
class Counter
{
private static $count = 0;
const VERSION = 2.0;
function __construct()
{
self::$count++;
}
function __destruct()
{
self::$count--;
}
static function getCount()
{
return self::$count;
}
};
//创建一个实例,则__construct()将执行
$c = new Counter();
//输出 1
print(Counter::getCount() . "
n");
//输出类的版本属性
print("Version used: " . Counter::VERSION . "
n");
?>
相关文章
VML绘图板②脚本--VMLgraph.js、XMLtool.js...2006-10-10
PHP5的XML新特性...2006-10-10
接口是一种特殊的抽象类,抽象类又是一种特殊的类2011-06-06
php中对2个数组相加的函数代码,需要的朋友可以参考下。2011-06-06
对盗链说再见......2006-10-10
PHP 和 COM...2006-10-10
挑战最棒的留言本的源码(一)...2006-10-10
简单易用的计数器(数据库)...2006-10-10
用PHP制作静态网站的模板框架(三)...2006-10-10
谈谈PHP语法(3)...2006-10-10
最新评论
php静态成员的例子,第七节 类的静态成员 [7]相关推荐
- Java入门 第七节 类和对象
文章目录 1. 引言 1.1 什么是对象 1.2. 什么是类 2. 类和对象的关系 2.1 计算机怎么描述世界 2.2 类和对象 语法结构 2.3 创建类 和 调用对象 2.4 简单分析对象创建过程 ...
- C++ 类的静态成员及静态成员函数
https://www.cnblogs.com/codingmengmeng/p/5906282.html C++ 类的静态成员及静态成员函数 对象与对象之间的成员变量是相互独立的.要想共用数据,则需 ...
- C++:类的静态成员变量及静态成员函数
写在前面: 对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员和静态方法 只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为 ...
- 类的静态成员函数和静态数据成员
一.静态数据成员 1.定义: 静态数据成员就是给类的普通数据成员加上关键字static. 2.访问规则 静态数据成员也遵守public/protected/private访问规则 访问静态成员时,则可 ...
- CPPDay05 C的静态成员,类的静态成员,单例模式,静态成员函数,继承(面向对象三大特性,高类聚,低耦合),继承方式(private,protected,public)多重复杂继承,虚继承
目录 0x00 C中的静态成员: 0x01类的静态成员: 0x02单例模式: 0x03静态成员函数: 0x04继承: 0x05继承方式: 0x06多重复杂继承: 0x07虚继承: 0x00 C中的静态 ...
- Scala入门到精通——第七节:类和对象(二)
本节主要内容 单例对象 伴生对象与伴生类 apply方法 应用程序对象 抽象类 单例对象 在某些应用场景下,我们可能不需要创建对象,而是想直接调用方法,但是Scala语言并不支持静态成员,scala通 ...
- Kotlin学习笔记 第二章 类与对象 第七节 数据类
参考链接 Kotlin官方文档 https://kotlinlang.org/docs/home.html 中文网站 https://www.kotlincn.net/docs/reference/p ...
- C#基础篇七类和静态成员
1.new关键字做的4个事情 1.1 开辟堆空间 a.开辟多大的空间呢? 当前类 所有的 成员变量类型所占空间的总和 + 类型指针(方法表的地址) b.开辟了空间干什么用呢? 存放 成员变量 1.2 ...
- 初阶C++——C++第二节——类和对象(大全篇)
想必大家都听过这样一个段子: 编程界最不缺少的就是对象.因为编程世界,一切皆对象.没有对象怎么办?我可以new一个出来. 关于new的内容,我们下一节再说.本章节我们先说<类和对象>,并且 ...
最新文章
- supercharge快充_华为10V 2A充电器曝光,支持20W电荷泵快充
- pg 定时删除_PostgreSQL的时间函数使用整理
- 【Vegas原创】imp/exp导入导出数据
- 理想的人才梯队体系特征:40页人才梯队建设实施方案,果断收藏
- 通过ISA发布服务器(二)
- 楼市捞金术:我是怎么在9个月把房价炒高两三倍的
- CAD中如何使用Lisp程序编写坐标标注功能
- 中国科学院大学2019年高等代数考研试题
- Netty(四十一) - 心跳(heartbeat)源码剖析
- 我的世界java生存命令方块,我的世界命令方块指令大全
- [975]python requests实现HTTPS客户端的证书导入
- 单核CPU处理多线程
- R语言 图片识别文字 PNG JPG图片转文字 OCR tesseract包
- python中breakpoint什么意思_breakpoint() Python 内置函数
- 微信小程序图片轮播+预览效果实现
- 将一组数组尽可能均匀的分成两堆,使两个堆中的数的和尽可能相等
- 计算机毕业设计PHP+安卓移动LYQ电子商城APP(源码+程序+lw+远程调试)
- cesium中鼠标pick获取entity空间信息
- Python数据爬取之0基础小白实战(三)源码解析
- 新毒霸悟空2014 v0709 官方版