PHP面向对象开发之类的常用关键字
类中的常用关键字
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 方法示例
代码如下 | 复制代码 |
class BaseClass { class ChildClass extends BaseClass { |
Example #2 Final 类示例
代码如下 | 复制代码 |
final class BaseClass { class ChildClass extends 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小例子吧:
代码如下 | 复制代码 |
class say_const{ |
推荐阅读
-
不错的一篇面向对象的PHP开发模式(简写版)
-
PHP面向对象程序设计中的self、static、parent关键字用法分析
-
PHP 进阶篇:面向对象的设计原则,自动加载类,类型提示,traits,命名空间,spl的使用,反射的使用,php常用设计模式 (麦子学员 第三阶段)
-
PHP的面向对象编程:开发大型PHP项目的方法(三)(转载)
-
PHP的面向对象编程开发大型PHP项目的方法一转载
-
面向对象-关于php 一些常用类 的 配置参数问题
-
PHP面向对象开发之类中接口的应用(interface、implements)_PHP教程
-
PHP面向对象开发之类的常用关键字_PHP教程
-
PHP的面向对象编程:开发大型PHP项目的方法(一)_PHP教程
-
PHP的面向对象编程:开发大型PHP项目的方法(四)(转载)