博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP程序中static关键字的使用
阅读量:2768 次
发布时间:2019-05-13

本文共 901 字,大约阅读时间需要 3 分钟。

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,在静态方法中,是不能访问非静态的成员。

转载地址:http://mlsod.baihongyu.com/

你可能感兴趣的文章
spark 简介
查看>>
python 自然语言处理(NLP)入门
查看>>
自然语言处理学习2:英语分词1word_tokenize, WordPunctTokenizer, TreebankWordTokenizer , WhitespaceTokenizer等
查看>>
RESTful API
查看>>
一台ubuntu服务器部署多台tomcat ,并实现外网访问:
查看>>
ubuntu服务器 安装nginx 为tomcat实现负载均衡
查看>>
Nginx反向代理以及负载均衡配置
查看>>
阿里云服务器安装ELK 不成功的教训
查看>>
阿里云服务器安装mongodb
查看>>
@RequestBody和@RequestParam的请求方式get和post关系
查看>>
Anaconda介绍、安装及使用教程
查看>>
特征工程之特征表达
查看>>
特征工程之特征预处理
查看>>
特征工程之特征预处理
查看>>
特征工程之特征选择
查看>>
FM模型理论和实践
查看>>
《推荐系统实战》| 七. 推荐系统实例
查看>>
七、定语从句和关系副词
查看>>
八、状语从句
查看>>
【NLP】彻底搞懂BERT
查看>>