关键字
来源:互联网 发布: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