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 相关文章推荐
dedecms中常见问题修改方法总结
Mar 21 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
php 文件状态缓存带来的问题
Dec 14 PHP
PHP中uploaded_files函数使用方法详解
Mar 09 PHP
深入探讨<br />和 \r\n两者有什么区别??
Jun 05 PHP
php版淘宝网查询商品接口代码示例
Jun 17 PHP
详细解读PHP中接口的应用
Aug 12 PHP
WordPress中邮件的一些修改和自定义技巧
Dec 15 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
php+html5+ajax实现上传图片的方法
May 14 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
PHP版微信小店接口开发实例
Nov 12 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中使用strpos函数实现屏蔽敏感关键字功能
2014/08/21 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
2012/10/29 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
js中replace的用法总结
2013/12/27 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
值得分享的Bootstrap Table使用教程
2016/11/23 Javascript
JavaScript用JSONP跨域请求数据实例详解
2017/01/06 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
详解vue-cli脚手架build目录中的dev-server.js配置文件
2017/11/24 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
Layui动态生成select下拉选择框不显示的解决方法
2019/09/24 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
vue路由缓存的几种实现方式小结
2020/02/02 Javascript
原生js+css实现tab切换功能
2020/09/17 Javascript
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
如何利用python制作时间戳转换工具详解
2018/09/12 Python
Python玩转Excel的读写改实例
2019/02/22 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python如何输出整数
2020/06/07 Python
Python 找出英文单词列表(list)中最长单词链
2020/12/14 Python
印度尼西亚最大和最全面的网络商城:Blibli.com
2017/10/04 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
农药学硕士毕业生自荐信
2013/09/25 职场文书
大学生职业规划前言模板
2013/12/27 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL