您当前的位置:首页  >> 学无止境 >> 程序人生

php类中$this,static,final,const,self几个关键字的使用

发布时间:2015-12-15 13:15:04来源:原创文章作者:阿兵

php面向对象编程中,定义成员属性和方法的关键字很多,不多加注意的话,经常没弄混淆,这里我对php类中$this,static,final,const,self几个关键字的使用简单总结下。

$this关键字

  $this在php类中表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='name';的形式。使用当前对象的属性必须使用$this关键字。常见用法如:$this->属性, $this->方法

在类里面调用当前类的属性和方法有三种方法,分别是self、parent、$this,这三个关键字的区别是:self用来指向当前的类;parent用于指向当前类的父类,可以使用该关键字调用父类的属性和方法;$this用来在类体内调用自身的属性和方法。

static关键字  

      声明类成员或方法为static,就可以不实例化类而直接访问。不能通过一个对象来访问其中的静态成员(静态方法除外)。为了兼容PHP4,如果没有指定“可见性”,属性和方法默认为public;另外需要注意的是如果类的方法是static的,他所访问的属性也必须是static的。

   由于静态方法不需要通过对象即可调用,所以伪变量$this在静态方法中不可用。静态属性不可以由对象通过->操作符来访问。用::方式调用一个非静态方法会导致一个E_STRICT级别的错误。

     就像其它所有的PHP静态变量一样,静态属性只能被初始化为一个字符值或一个常量,不能使用表达式。 所以你可以把静态属性初始化为整型或数组,但不能指向另一个变量或函数返回值,也不能指向一个对象。PHP5.3.0之后,我们可以用一个变量来动态调用类。但该变量的值不能为关键字self, parent或static

final关键字

     PHP final关键字可以修饰类同样可以修改类中的方法,但它们的作用是差不多的,即如果你使用了final关键字来修饰了,那么这个被修饰的类或者方法将不能被扩展或者继承。你只能老老实实去引用它。如果你在类前面使用了final,这就是说明这个类不能使用继承;如果你在方法前使用了PHP final关键字,这就是说明这个方法不能被覆盖。

const关键字

    const 是一个定义常量的关键字,在PHP 中定义常量使用的是“define()”这个函数,但是在类里面定义常量使用的是“const”这个关键字, 如果在程序中改变了它的值,那么会出现错误,用“const”修饰的成员属性的访问方式和“static”修饰的成员访问的方式差不多,也是使用“类名”,在方法里面使用“self”关键字。但是不用使用“$” 符号,也不能使用对象来访问。 

关键词: php 关键字 php类 面向对象
分享到:

相关阅读

栏目最新

点击排行