在php中,通过static关键字修饰的成员方法被称为静态方法,静态方法的内存空间是固定的,只能访问类中的静态成员,可以通过“类名::静态方法()”语句访问静态方法。
本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑
在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不会被实例化到对象中,也就是说我们不需要实例化一个类,就可以通过类来访问静态成员。
在类中声明静态变量很容易,我们可以在类的普通成员前加一个 static 关键字,就可以将这个普通成员变成静态成员了。这样一来,我们可以在不实例化类的情况下,直接访问类中的这些静态成员。访问静态成员的语法格式如下:
类名::$静态属性 类名::静态方法()
其中::
符号被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。
如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符self::
即可。
静态方法
静态方法的内存空间是固定的,相对来说更省资源。
创实例的创一个实例就要开辟一个新内存,耗费资源 静态方法属于类所有,类实例化前即可使用;
静态方法只能访问类中的静态成员;
static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;
静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
静态方法的优点:
(1)在代码的任何地方都可以用(假设可以访问该类);
(2)类的每个实例都可以访问类中定义的静态属性,可以利用静态属性来设置值,该值可以被类的所有对象使用;
(3)不需要实例对象就能访问静态属性或方法。
静态方法和普通方法的区别
静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。
静态方法可以通过 类名::方法名直接调用。普通方法需要创建一个实例,也就是new一个对象,然后通过 对象名->方法名的方式来调用 静态类只能包含静态成员,否则会抛出编译错误;
非静态类既可以包含非静态成员也可以包含静态成员 静态类是不能实例化,之所以不能实例化,是因为静态类会导致C#编译器将该类同时标记为abstract和sealed,并且编译器不会在类型中 生成一个实例的构造函数,从而导致静态类不能实例化;
非静态类可以,并且静态成员的访问只能通过类来进行访问,因为静态成员是属于类的。
推荐学习:《PHP视频教程》
以上是php中什么叫静态方法的详细内容。更多信息请关注PHP中文网其他相关文章!