什么是静态方法?

 

不是所有的变量和方法都要通过创建对象来调用。可以通过给变量和方法加上static关键字来直接调用​

调用静态成员的语法格式为:

关键字::静态成员

关键字可以是:

(1)self,在类内部调用静态成员时所使用。

(2)静态成员所在的类名,在类外调用类内部的静态成员时所使用。

注意:在静态方法中,只能调用静态变量,而不能调用普通变量;而普通方法则可以调用静态变量。

静态方法实例讲解:

静态方法实例1:


1

2

3

4

5

6

7




​<?php​

​class​​ ​​Math{​

​static​​ ​​function​​ ​​squared(​​​​$input​​​​){​

​return​​ ​​$input​​​​*​​​​$input​

​}​

​}​

​echo​​ ​​Math :: squared(3);​


运行结果为:9

上面是个简单的实例,值得注意的是,在静态方法中,不能使用$this关键字,因为可能会没有可以引用的对象实例。因为静态方法可以不需要实例化对象。

使用静态成员,除了可以不需要实例化对象外,另一个作用就是在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用。这个概念比较抽象,下面举个例子具体分析。

静态方法实例2:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16




​<?php​

​header(​​​​"content-type:text/html;charset=utf-8"​​​​);​

​class​​ ​​Play{​

​static​​ ​​$num​​ ​​= 0;​

​function​​ ​​showNum(){​

​echo​​ ​​'这是你第'​​ ​​. self :: ​​​​$num​​ ​​. ​​​​'次玩LOL'​​​​;​

​self :: ​​​​$num​​​​++ ;​

​}​

​}​

​$play1​​ ​​= ​​​​new​​ ​​Play();​

​$play1​​ ​​-> showNum();​

​echo​​ ​​'<br/>'​​​​;​

​$play2​​ ​​= ​​​​new​​ ​​Play();​

​$play2​​ ​​-> showNum();​

​echo​​ ​​'<br/>'​​​​;​

​echo​​ ​​'这是你第'​​ ​​. Play::​​​​$num​​ ​​.​​​​'次玩LOL'​​​​;​


上述实例中,我们先定义了静态变量$num,然后再类中声明一个方法,在方法当中调用了静态变量,调用的方法可以在实例中看到,接着是给静态变量加1.依次实例化类的对象,再调用方法。接下来就是我们上面说的:在对象被销毁后,仍然保存被修改的静态数据,以便下次继续使用。

注意事项:

静态方法很好用,不用实例化对象,当类第一次加载的时候就已经给了静态成员空间。但是什么东西都是不能滥用的。因为一旦静态成员声明的过多,空间一直被占用着,那么会影响系统的运行速度和功能,所以切记:东西虽好,可不能贪多哦!

以上就是php面向对象之静态方法使用的详细内容