PHP面向对象开发之类的惯用关键字
发布时间:2023-10-31 10:31:48 所属栏目:PHP教程 来源:网络
导读: 类中的常用关键字
1.fianl:锁
2.self:有点类似与this关键字
3.static:静态属性
4.const:常量关键字
1.关键字:fianl
1.fianl:锁
2.self:有点类似与this关键字
3.static:静态属性
4.const:常量关键字
1.关键字:fianl
类中的常用关键字 1.fianl:锁 2.self:有点类似与this关键字 3.static:静态属性 4.const:常量关键字 1.关键字:fianl 用来定义类和方法的一个重要关键字,当定义类的时候该类不能被继承,用来定义方法的时候该方法不能被重载。 1. final不成修饰成员属性(类中常不是用这个关键字) 2. final只能修饰类和方法 作用: 使用final修饰的类 不 能被子类继承 使用final修饰的方法不能被子类去覆盖 用来限制类不被继承,方法不被覆盖就使用fianl 类使用 final 关键字的例子: final class Person { ...... } final 定义的类被继承时会提示如下错误: Fatal error: Class Student may not inherit from final class (Person) in ... 方法使用 final 关键字的例子: class Person { final function say() { ...... } } Example #1 Final 方法示例 代码如下 1 class BaseClass { public function test() { echo "BaseClass::test() calledn"; } final public function moreTesting() { echo "BaseClass::moreTesting() calledn"; } } 2 class ChildClass extends BaseClass { public function moreTesting() { echo "ChildClass::moreTesting() calledn"; } } // 产生 Fatal error: Cannot override final method BaseClass::moreTesting() ?> Example #2 Final 类示例 代码如下 1 final class BaseClass { public function test() { echo "BaseClass::test() calledn"; } // 这里无论你是否将方法声明为final,都没有关系 final public function moreTesting() { echo "BaseClass::moreTesting() calledn"; } } 2 class ChildClass extends BaseClass { } // 产生 Fatal error: Class ChildClass may not inherit from final class (BaseClass) ?> 2.关键字:self 在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::,反之如果被引用的变量或者方法没有被声明成const或者static,那么就必须使用操作符->。 另外,如果从类的内部访问const或者static变量或者方法,那么就必须使用自引用的self,反之如果从类的内部访问不为const或者static变量或者方法,那么就必须使用自引用的$this 格式: self::类内部成员(属性或者方法) || 等价于 类名::类内部成员(属性或者方法) 注意:因为没有数理化类访问内部属性或方法是没有意义的,所以self一般用来访问类中的:静态成员,常量,其他定义的内容。 3.关键字:static 内存优化,用来定义静态属性或方法,可以在类未被实例化时就能使用。静态属性单独占用内存,而不会因创建多个对象而重复占用内存。 格式: class class1 { static $name; static function fun1 { ... } } 静态成员的访问(类内部): self::静态成员 类名称::静态成员 静态成员的访问(类外部): 类名称::静态成员 4.关键字:const 用来定义类中的常量,只能修饰类当中的成员属性。 格式: class class1 { //建议用大写定义,不使用$符号。 const NAME; ... } 看个PHP const小例子吧: 代码如下 1 < ?php class say_const{ const CHARSET="中国"; publice function say_hello() { echo slef::CHARSET; } } $const1=new say_const() $const1->say_hello(); ?> (编辑:通辽站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐