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 相关文章推荐
在服务端进行目录建立、删除,文件上传、删除的过程的php代码
Sep 10 PHP
关于页面优化和伪静态
Oct 11 PHP
按上下级层次关系输出内容的PHP代码
Jul 17 PHP
php中利用post传递字符串重定向的实现代码
Apr 21 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
PHP数据类型的总结分析
Jun 13 PHP
php的array数组和使用实例简明教程(容易理解)
Mar 20 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
PHP身份证校验码计算方法
Aug 10 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
php去除deprecated的实例方法
Nov 17 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
PHP4实际应用经验篇(9)
2006/10/09 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php语言流程控制中的主动与被动
2012/11/05 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
2015/09/14 PHP
php实现的http请求封装示例
2016/11/08 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
使用ionic(选项卡栏tab) icon(图标) ionic上拉菜单(ActionSheet) 实现通讯录界面切换实例代码
2017/10/20 Javascript
如何从零开始手写Koa2框架
2019/03/22 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python程序中设置HTTP代理
2016/11/06 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
python数值基础知识浅析
2019/11/19 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
Python文件时间操作步骤代码详解
2020/04/13 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
Giglio德国网上精品店:奢侈品服装和配件
2016/09/23 全球购物
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
巴西儿童时尚购物网站:Dinda
2019/08/14 全球购物
东方红海科技面试题软件测试方面
2012/02/08 面试题
物流管理毕业生自荐信
2013/10/24 职场文书
机械设计及其自动化专业推荐信
2013/10/31 职场文书
个人评价范文分享
2014/01/11 职场文书
大学生村官事迹材料
2014/01/21 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
2015年母亲节活动策划方案
2015/05/04 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS