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入门源程序
Oct 09 PHP
PHP开发框架总结收藏
Apr 24 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
PHP 关于访问控制的和运算符优先级介绍
Jul 08 PHP
PHP模板引擎Smarty内建函数详解
Apr 11 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
Oct 20 PHP
PHP常用函数之base64图片上传功能详解
Oct 21 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
晶体管单管来复再生式收音机
2021/03/02 无线电
PHP文件上传实例详解!!!
2007/01/02 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
Zend Framework教程之Zend_Layout布局助手详解
2016/03/04 PHP
Yii中的cookie的发送和读取
2016/07/27 PHP
在Mac OS下搭建LNMP开发环境的步骤详解
2017/03/10 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
javascript中处理时间戳为日期格式的方法
2014/01/02 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
浅析JavaScript回调函数应用
2016/05/22 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
2016/10/01 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
JS实现可视化文件上传
2018/09/08 Javascript
AngularJS修改model值时,显示内容不变的实例
2018/09/13 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
python中的错误处理
2016/04/10 Python
python实现SOM算法
2018/02/23 Python
Python中Numpy包的安装与使用方法简明教程
2018/07/03 Python
python实现超市商品销售管理系统
2019/10/25 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
临床医学专业毕业生的自我评价
2013/10/17 职场文书
规划编制实施方案
2014/03/15 职场文书
幼儿园开学报名通知
2015/07/16 职场文书
分析Java中Map的遍历性能问题
2021/06/26 Java/Android