PHP程序中static关键字的使用
2015-11-12 09:38
465 查看
static使用环境:
如果定义了一个人的类,人里面有一个国家的属性,如果在实例化几百上千个对象但他们的国家都是一样的(比如中国),那么在内存中就会存放上千个国家变量,这就会导致内存的滥用。这时如果使用statis在申明类的时候将国家写成statis类型并赋值中国,那么以后的就不需要初始化国家就默认为中国。这样在内存中只占用一个。
static使用:
1,static可以修饰属性和方法,不能修饰类
2,使用statis修饰成员属性,存在内存的初始化静态表段
3,可以被所有同一个类的对象共用
4,第一个用到类(类名第一次出现),类在加载到内存时,就已经将静态的成员加到了内存
5,如果声明类成员或方法为static,就可以不实例化而直接访问,不能通过一个对象来访问其中的静态成员(除静态方法)。
6,用static定义的变量的值是可以在程序中修改的。
7,static成员一旦被加载,只有脚本结束才被释放。
8,类里面的方法默认是static的。
9,在静态方法中,是不能访问非静态的成员。
10,只要是能使用静态的环境下声明方法,就最好使用静态方法(效率高)。
补充:
->和::访问的区别:
->使用在一个对象访问成员的时候
::使用在一个类访问成员的时候
self和this的区别
self可以在类中的方法中,代表自己类名
this可以在对象的方法中,代表自己的对象名
使用例子:
echo Person::$country; 如果country属性是static类型的,就可以这样访问,也只能这么访问因为静态属性是类的一部分,不是对
象的一部分。
echo Person::$name; 如果name属性不是static类型的,就不能这样访问,只能用对象来访问。
echo Person::read(); 如果read方法不是static类型的,可以这样访问,但会有警告。(因为默认是静态的)
echo Person::read(); 如果read方法是static类型的,可以这样访问。
static缺点:
1,只有在脚本结束时,才能释放内存。
2,在静态方法中,是不能访问非静态的成员。
如果定义了一个人的类,人里面有一个国家的属性,如果在实例化几百上千个对象但他们的国家都是一样的(比如中国),那么在内存中就会存放上千个国家变量,这就会导致内存的滥用。这时如果使用statis在申明类的时候将国家写成statis类型并赋值中国,那么以后的就不需要初始化国家就默认为中国。这样在内存中只占用一个。
static使用:
1,static可以修饰属性和方法,不能修饰类
2,使用statis修饰成员属性,存在内存的初始化静态表段
3,可以被所有同一个类的对象共用
4,第一个用到类(类名第一次出现),类在加载到内存时,就已经将静态的成员加到了内存
5,如果声明类成员或方法为static,就可以不实例化而直接访问,不能通过一个对象来访问其中的静态成员(除静态方法)。
6,用static定义的变量的值是可以在程序中修改的。
7,static成员一旦被加载,只有脚本结束才被释放。
8,类里面的方法默认是static的。
9,在静态方法中,是不能访问非静态的成员。
10,只要是能使用静态的环境下声明方法,就最好使用静态方法(效率高)。
补充:
->和::访问的区别:
->使用在一个对象访问成员的时候
::使用在一个类访问成员的时候
self和this的区别
self可以在类中的方法中,代表自己类名
this可以在对象的方法中,代表自己的对象名
使用例子:
echo Person::$country; 如果country属性是static类型的,就可以这样访问,也只能这么访问因为静态属性是类的一部分,不是对
象的一部分。
echo Person::$name; 如果name属性不是static类型的,就不能这样访问,只能用对象来访问。
echo Person::read(); 如果read方法不是static类型的,可以这样访问,但会有警告。(因为默认是静态的)
echo Person::read(); 如果read方法是static类型的,可以这样访问。
static缺点:
1,只有在脚本结束时,才能释放内存。
2,在静态方法中,是不能访问非静态的成员。
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项
- ASP.NET、ASP、PHP、JSP之间有什么区别?
- PHP VBS JS 函数 对照表
- C语言实现的统计php代码行数功能源码(支持文件夹、多目录)
- php xml 入门学习资料