php面向对象之静态方法使用
什么是静态方法?
不是所有的变量和方法都要通过创建对象来调用。可以通过给变量和方法加上static关键字来直接调用。无锡大理石测量平台
调用静态成员的语法格式为:
关键字::静态成员
关键字可以是:
(1)self,在类内部调用静态成员时所使用。
(2)静态成员所在的类名,在类外调用类内部的静态成员时所使用。
注意:在静态方法中,只能调用静态变量,而不能调用普通变量;而普通方法则可以调用静态变量。
静态方法实例讲解:
静态方法实例1:
1 2 3 4 5 6 7 |
|
运行结果为:9
上面是个简单的实例,值得注意的是,在静态方法中,不能使用$this关键字,因为可能会没有可以引用的对象实例。因为静态方法可以不需要实例化对象。
使用静态成员,除了可以不需要实例化对象外,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用。这个概念比较抽象,下面举个例子具体分析。
静态方法实例2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
上述实例中,我们先定义了静态变量$num,然后再类中声明一个方法,在方法当中调用了静态变量,调用的方法可以在实例中看到,接着是给静态变量加1.依次实例化类的对象,再调用方法。接下来就是我们上面说的:在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用。
注意事项:
静态方法很好用,不用实例化对象,当类第一次加载的时候就已经给了静态成员空间。但是什么东西都是不能滥用的。因为一旦静态成员声明的过多,空间一直被占用着,那么会影响系统的运行速度和功能,所以切记:东西虽好,可不能贪多哦!
以上就是php面向对象之静态方法使用的详细内容
php面向对象之静态方法使用的更多相关文章
- JavaScript【面向对象】-静态方法-私有方法-公有方法-特权方法
JavaScript面向对象是近年来比较火的一个概念了,由于小弟才疏学浅,虽然做过不少的web项目,看了网上很多深奥的资料和教程,还是对他们深奥 的理论一知半解,前段时间看了点书,总算有了自己的理解, ...
- 面向对象之静态方法(static)和实例化方法的区别
这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简 ...
- Python面向对象之静态方法、静态方法与类方法
静态属性: 类调用函数属性时,需要先将类实例化,再将实例作为函数属性传入:类的实例调用函数属性时需要在后面加括号. class Building: def __init__(self, name, o ...
- day11面向对象 多态 静态方法 (三)
多继承 class 类名(父类1,父类2) ----- 默认使用第一个父类 重写父类方法 方法名和父类方法名一样 当父类和子类的方法名重名时,默认使用的是子类中的方法 调用被重写的父类的 ...
- Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )
本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@s ...
- Python_Day8_面向对象编程进阶
本节内容: 面向对象高级语法部分异常处理 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 Socket开发基础 经典类vs新式类 classical vs new style: 经典 ...
- Python之路,Day7 - 面向对象编程进阶
本节内容: 面向对象高级语法部分 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 经典类vs新式类 把下面代 ...
- Python自动化 【第七篇】:Python基础-面向对象高级语法、异常处理、Scoket开发基础
本节内容: 1. 面向对象高级语法部分 1.1 静态方法.类方法.属性方法 1.2 类的特殊方法 1.3 反射 2. 异常处理 3. Socket开发基础 1. ...
- Python-Day7 面向对象进阶/异常处理/Socket
一.面向对象高级语法部分 1.静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里 ...
随机推荐
- 往List集合循环add(对象)得到的是重复对象
记录每次的错误,强大是慢慢的积累,先看看代码, 往list中循环添加RoleKungFu对象,看似没有问题,结果打印则显示: 全部是重复的数据!这是因为啥呢,因为将对象add入list中时,放入lis ...
- 20191106-基于Python的对字母基数排序
基数排序 概念 基数排序的算法过程是先将待排元素补位,使其长度一致,然后按照序列中的元素的每个位数进行分桶的一种算法. 比如待排序列是数字,则将所有待比较数值(正整数)统一为同样的数位长度,数位较短的 ...
- Python进阶:对象复制与比较,分深浅,见真假
"==" 与 is python 为 10 开辟内存空间, a与b同时指向这块内存,即a与b的值相等,a与b的id也相等.因此 a==b 与 a is b 都返回True: a = ...
- zookeeper启动占用8080端口,跟HDFS默认使用的8080端口冲突
zookeeper最近的版本中有个内嵌的管理控制台是通过jetty启动,也会占用8080 端口. 通过查看zookeeper的官方文档,发现有3种解决途径: (1).删除jetty. (2)修改端口. ...
- 1.MVC基础-初识MVC,与WebForm比较
1.Net WebForm的开发模式
- cmake用法及常用命令总结(全)
CMakeLists.txt 的语法比较简单,由命令.注释和空格组成,其中命令是不区分大小写的.指令是大小写无关的,参数和变量是大小写相关的.但推荐全部使用大写指令.符号 # 后面的内容被认为是注释. ...
- php中需要注意的函数(持续更新)
explode 函数 $a = null; explode("#",$a); //不会报错会返回一个只包含空字符串的数组
- 【转载】Sqlserver使用SUBSTRING函数截取字符串
在SQL语句查询过程中,Sqlserver支持使用LEFT().RIGHT().SUBSTRING()等几个函数对字符串进行截取操作,SubString函数相对于其他两个函数来说更灵活,使用场景更多, ...
- 在vue项目中使用live2d
成品如图: 那么几步简单说明怎么用吧: 第一,先去github上下载相应的静态资源: https://github.com/xiazeyu/live2d-widget-models 第二,将packg ...
- base64码通过http传输 +号变 空格 以及 图片编码后字符串较长导致POST提交失败 问题解决
场景:图片上传OSS存储,接口拿字符串去接前端传的base64码,服务器打印入参传的值,发现和前端打印的值有所区别,服务器中打印的值所有+号全部变成空格. 解决办法: Java中使用:url = ur ...