static 变量---所有对象共享一个变量(全局变量区),无需构造---概念上和.net相同
所有对象共享一个变量的实质:
声明时:堆区存放一个地址,地址指向全局变量区。然后当类对象声明时,只是在堆区中为自身添加该地址。
全局变量:声明和调用全局变量----global $global_num=0;
(面向对象:注重封装(装入实体类),无全局变量)
面向对象的累加问题
1.全局变量
2.静态变量:和全局变量本质上没有区别,只是只能被类引用,体现了封装性。
类中访问方法
self::静态变量 或者 类名::静态变量
类外访问方法
类名::静态变量
类内部使用this,类外部使用对象实例访问静态变量都是错误。---和.net相同
static 方法--用于操作类内静态变量(约定俗成)
不能访问非静态变量----逻辑上讲不通
类内访问:
类名::方法名 或者类的实例名->方法名 ---和.net不同
类外访问
类名::方法名 或者self::方法名
实例变量,普通变量,实例方法,
静态方法:节省内存,速度快(原因提前加载)。
转载于:https://www.cnblogs.com/Watcher/p/3576967.html