php 类中的常量、静态属性、非静态属性的区别


Posted in PHP onApril 09, 2017

一.类常量:在类中始终保持不变的值定义为常量

类的常量不能使用访问限制修饰符,他是 public 的,可继承,可以被子类重写,访问类的常量必须使用双冒号 :: ,可以使用类名或类的实例来访问,因为是常量,所以名称不能使用表示变量的符号 $.

可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。

常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。

接口(interface)中也可以定义常量。更多示例见文档中的接口部分。

自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。

语法 : const constant= '常量';

class Myclass{
 const constant = '常量';

 //类内部调用
 public function test(){
  echo self::constant.'<br>';
 } 
}
Myclass::test();
//类外部访问
echo Myclass::constant.'<br>'; //方法一

$obj = new Myclass();  //方法二
echo $obj::constant.'<br>';

二.静态属性 : 是一个变量,可以常量的语法访问,就是 :: ,可以没有实例化也能访问

语法 :public static $my_static = '类似常量';

class Myclass{
 public static $static_val = '静态属性';
 //类内部访问
 public function test(){
  return self::$static_val.'<br>';
 } 
}

//类外部访问
// echo Myclass::test();
echo Myclass::$static_val;  //方法一
$obj = new Myclass();    //方法二
echo $obj::$static_val;
echo $obj->test();

三.非静态属性 : 一个正常的变量,实例化后可以访问,用 -> 符号

语法: public $my_val = '正常变量'

class Myclass{
 public $normal_val = '非静态属性';

 //类内部访问
 public function test(){
  return $this->normal_val ;
 } 
}
//类外部访问
$obj = new Myclass(); 
echo $obj->normal_val;
echo $obj->test();

PHP获取类中常量,属性,及方法列表的方法

$r = new ReflectionClass($this); 
Zend_Debug::dump($r->getConstants(), "Constants"); 
Zend_Debug::dump($r->getProperties(), "Properties"); 
Zend_Debug::dump($r->getMethods(), "Methods");

以上就是php 类中的常量、静态属性、非静态属性的介绍,当然你也可以查看这篇文章(php类变量)希望大家以后多支持三水点靠木。

PHP 相关文章推荐
用ODBC的分页显示
Oct 09 PHP
php生成缩略图的类代码
Oct 02 PHP
php全排列递归算法代码
Oct 09 PHP
php笔记之:初探PHPcms模块开发介绍
Apr 26 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
Jul 15 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
thinkPHP下的widget扩展用法实例分析
Dec 26 PHP
Yii框架连接mongodb数据库的代码
Jul 27 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
thinkPHP3.2使用RBAC实现权限管理的实现
Aug 27 PHP
php源码的使用方法讲解
Sep 26 PHP
PHP实现发送微博消息功能完整示例
Dec 04 PHP
PHP对象相关知识总结
Apr 09 #PHP
YII2框架中使用yii.js实现的post请求
Apr 09 #PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
Apr 09 #PHP
CentOS系统中PHP安装扩展的方式汇总
Apr 09 #PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 #PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 #PHP
yii框架无限极分类的实现方法
Apr 08 #PHP
You might like
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
jquery中ajax调用json数据的使用说明
2011/03/17 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
javascript消除window.close()的提示窗口
2015/05/20 Javascript
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
js实现Select列表内容自动滚动效果代码
2015/08/20 Javascript
深入理解React高阶组件
2017/09/28 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
python中字典(Dictionary)用法实例详解
2015/05/30 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
Python3.8中使用f-strings调试
2019/05/22 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
django有哪些好处和优点
2020/09/01 Python
OpenCV读取与写入图片的实现
2020/10/13 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
彼得罗夫美国官网:Peter Thomas Roth美国(青瓜面膜)
2017/11/05 全球购物
美国开幕式潮店:Opening Ceremony
2018/02/10 全球购物
俄罗斯品牌服装和鞋子在线商店:BRIONITY
2020/03/26 全球购物
意大利单身交友网站:Meetic
2020/07/12 全球购物
是否有自动比较结构的方法
2015/06/03 面试题
经典英文广告词
2014/03/18 职场文书
大学社团计划书
2014/05/01 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
2015年度物流工作总结
2015/04/30 职场文书
任命书格式模板
2015/09/22 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
SpringBoot读取Resource下文件的4种方法
2021/07/02 Java/Android