在php中,static方法指的是“静态方法”;通过static关键字修饰的成员属性和成员方法被称为静态属性和静态方法;静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性。
PHP static:静态方法和属性
在 PHP 中,通过 static 关键字修饰的成员属性和成员方法被称为静态属性和静态方法,这里可以将它们统称为静态成员,类中的静态成员与类中的一般成员不同,静态成员不会被实例化到对象中,也就是说我们不需要实例化一个类,就可以通过类来访问静态成员。
【相关教程推荐:《PHP教程》】
在类中声明静态变量很容易,我们可以在类的普通成员前加一个 static 关键字,就可以将这个普通成员变成静态成员了。这样一来,我们可以在不实例化类的情况下,直接访问类中的这些静态成员。访问静态成员的语法格式如下:
类名::$静态属性 类名::静态方法()
其中::
符号被称为范围解析操作符,用于访问静态成员、静态方法和常量,还可以用于覆盖类中的成员和方法。
如果要在类内部的成员方法中访问静态属性,只要在静态属性的名称前加上操作符self::即可。
静态方法
(1)静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性;
(2)从当前类(不是子类)中访问静态方法或属性,可以使用 self 关键字,self 指向当前类,就像 $this 指向当前对象一样;
(3)不能再对象中调用静态方法,静态方法和属性又被称为类方法和类属性,因此不能再对象中使用伪变量 $this 。
静态方法的优点:
(1)在代码的任何地方都可以用(假设可以访问该类);
(2)类的每个实例都可以访问类中定义的静态属性,可以利用静态属性来设置值,该值可以被类的所有对象使用;
(3)不需要实例对象就能访问静态属性或方法。
php静态方法的好处及不足
1、static方法是类中的一个成员方法,属于整个类,即使不用创建任何对象也可以直接调用!
2、静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。
3、静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
4、C++中,若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能用类的静态成员。
推荐学习:PHP编程从入门到精通