这篇文章主要介绍了关于PHP的类修饰符与访问修饰符,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
1.abstract修饰的类为抽象类,如果一个类中含有抽象方法那么这个类就是抽象类(当然一个类中没有抽象方法,我们也可以定义这个类为抽象类),那么什么是抽象方法呢,抽象方法就是没有方法体的方法(没有大括号和里面的内容),抽象方法前面也加上abstract修饰。抽象类本身不能被实例化,只有一个类继承了它,并覆盖了它所有的抽象方法,这样我们可以实例化它的子类
abstract class My{ abstract function say(); } // abstract class My{ function say(){ echo 'hello'; } }
2.interface修饰的类为接口,接口与抽象类有点类似,不过他们的区别是,接口所有的方法都是抽象方法,接口的抽象方法前面没有abstract修饰,成员属性必须为常量。接口引用区别于类继承关键字 extends ,继承只能只是单一性,而接口可以使用关键字 implements 多个引用并用逗号分开。
interface demo { const NAME = "常量对象属性"; function fun1(); function fun2(); //抽象方法。 } class MyPc extends Root implements demo , demo2 , demo3 { ... }
3.final修饰的类为终结类,它不能被继承。
1.public 公共的方法和属性,能在所有的类中使用
2.static 静态的方法和变量
如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用,static的属性,在内存中只有一份,为所有的实例共用, 静态方法不能调用非静态属性 。不能使用self::调用非静态属性。
function test(){ static $a=1; $a*=2; echo $a."\n"; } test() test() test() //打印结果 //2 //4 //8
静态变量的初始化赋值只有一次,后面的test方法不会再初始化。
3.private 修饰的方法和变量是私有的,只能在本类中调用(在其他的类中实例化本类,是无法调用private修饰的方法和变量)
4.proteced 受保护的方法和变量,只能在本类和本类的子类中使用
5.final 修饰的方法不能被覆盖。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
Atas ialah kandungan terperinci PHP的类修饰符与访问修饰符. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!