关键字

来源:互联网 发布:php在线加密 编辑:程序博客网 时间:2024/05/21 12:49

常见的关键字

final关键字

final关键字是加在类和类中的方法前,但是不能使用final标识成员属性。它的作用:一 、使用final标识的类不能被继承。二、使用final标识的成员方法,在子类中不能被覆盖。

列子1:

<?phpheader('content-type:text/html;charset=utf-8');final class Myclass {}//被final标识的类不能被继承,否则会出错class Myclass2 extends Myclass{}//结果如下Fatal error: Class Myclass2 may not inherit from final class (Myclass) in D:\WWW\test.php on line 8

例子2:

<?phpheader('content-type:text/html;charset=utf-8');class Myclass {    final function fun(){    }}class Myclass2 extends Myclass{//被final标识的方法不能被覆盖,否则出错    function fun(){    }}//结果如下Fatal error: Cannot override final method Myclass::fun() in D:\WWW\test.php on line13

static关键字

使用static关键字可以将类中的成员标识为静态的,既可以用来标识成员属性,也可以用来标识成员方法。使用static标识的成员属于类的,与对象实例和其他类无关。

在外部访问静态成员

类名::静态成员属性名类名::静态成员方法名()

在类中访问本类中的静态成员

self::静态成员属性名self::静态成员方法名()

如果在类的外部访问类中的静态成员,可以使用对象的引用和类名访问,但是通常使用类名访问。在使用静态方法时的要注意,在静态方法中只能访问静态成员,因为非静态成员需要通过对象的引用才能访问,通常使用$this完成。而静态的方法在对象不存在的情况下也可以直接使用类名来访问,没有对象也就没有$this引用,没有$this引用就不能访问类中的非静态成员,但可以使用类名或self在非静态方法中访问静态成员。

<?phpheader('content-type:text/html;charset=utf-8');class Myclass{    static $count;    function __construct(){        self::$count++;//类中调用用self访问静态属性    }    static function getCount(){        return self::$count;//类中调用用self访问静态属性    }}Myclass::$count=0;//外部调用使用类名访问静态属性$myc1=new Myclass();$myc2=new Myclass();$myc3=new Myclass();echo Myclass::getCount().'<br/>';/外部调用使用类名访问静态属性echo $myc3->getCount();/外部调用也可以使用对象引用访问静态属性。不推荐//结果如下33

const关键字

在php中定义常量是通过调用define()函数来完成的,但是将类中的成员属性定义为常量,则只能使用const关键字。将类中的成员属性使用const关键字标识为常量。访问方式和static一样,也是在外部使用类名访问成员属性和成员方法,不能使用对象引用来访问。在内部使用self关键字来访问。标识为常量的成员属性时只读的,不能重新赋值,如果试图该变它的值,则会出现错误。所以在声明常量时一定要给它初值,因为没有其他方式后期赋值。用const声明的常量名称前不需要使用” $”符号,而且常量名称通常都是大写的。

<?phpheader('content-type:text/html;charset=utf-8');class Myclass{    const CONSTANT='CONSTANT VALUES';    function showConstant(){        return self::CONSTANT;//在类中用self访问常量    }}echo Myclass::CONSTANT.'<br/>';//在外部用类名访问常量$myclass=new Myclass();echo $myclass->showConstant().'<br/>';echo $myclass->CONSTANT;//不能用对象引用访问//结果如下CONSTANT VALUESCONSTANT VALUESNotice: Undefined property: Myclass::$CONSTANT in D:\WWW\test.php on line 13
0 0