php 类中的常量 静态以及非静态属性之间的分别
类常量:在类中始终保持不变的值定义为常量 类的常量不能使用访问限制修饰符,他是 public 的,可继承,可以被子类重写,访问类的常量必须使用双冒号 :: ,可以使用类名或类的实例来访问,因为是常量,所以名称不能使用表示变量的符号 $. 可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。 常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。 接口(interface)中也可以定义常量。更多示例见文档中的接口部分。 自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。 语法 : const constant= '常量' classMyclass{ constconstant ='常量' //类内部调用 publicfunctiontest(){ echoself::constant.' } } Myclass::test(); //类外部访问 echoMyclass::constant.' '//方法一 $obj=newMyclass(); //方法二 echo$obj::constant.' 静态属性:是一个变量,可以常量的语法访问,就是 :: ,可以没有实例化也能访问 语法 :public static $my_static = '类似常量' classMyclass{ publicstatic$static_val='静态属性' //类内部访问 publicfunctiontest(){ returnself::$static_val.' } } //类外部访问 // echo Myclass::test(); echoMyclass::$static_val; //方法一 $obj=newMyclass(); //方法二 echo$obj::$static_val; echo$obj->test(); 非静态属性:一个正常的变量,实例化后可以访问,用 -> 符号 语法: public $my_val = '正常变量' classMyclass{ public$normal_val='非静态属性' //类内部访问 publicfunctiontest(){ return$this->normal_val ; } } //类外部访问 $obj=newMyclass(); echo$obj->normal_val; echo$obj->test(); PHP获取类中常量,属性,及方法列表的方法 $r=newReflectionClass($this); Zend_Debug::dump($r->getConstants(),"Constants"); Zend_Debug::dump($r->getProperties(),"Properties"); Zend_Debug::dump($r->getMethods(),"Methods"); (编辑:银川站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |