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中使用XML
Oct 09 PHP
php获得文件扩展名三法
Nov 25 PHP
php二分法在IP地址查询中的应用
Aug 12 PHP
小文件php+SQLite存储方案
Sep 04 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
APACHE的AcceptPathInfo指令使用介绍
Jan 18 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
Jun 08 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
大家在抢红包,程序员在研究红包算法
Aug 31 PHP
php图片添加文字水印实现代码
Mar 15 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
php json相关函数用法示例
Mar 28 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.ini中文版
2006/10/09 PHP
用PHP实现Ftp用户的在线管理的代码
2007/03/06 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
利用JavaScript检测CPU使用率自己写的
2014/03/22 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
2019/08/07 Javascript
Vue 实例中使用$refs的注意事项
2021/01/29 Vue.js
Python中集合的内建函数和内建方法学习教程
2015/08/19 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
2020/05/07 Python
Python unittest单元测试openpyxl实现过程解析
2020/05/27 Python
selenium判断元素是否存在的两种方法小结
2020/12/07 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
亿企通软件测试面试题
2012/04/10 面试题
农民入党思想汇报
2014/01/03 职场文书
工程承包协议书范本
2014/09/29 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
离婚协议书格式
2015/01/26 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
电影雨中的树观后感
2015/06/15 职场文书
考生诚信考试承诺书(2016版)
2016/03/25 职场文书
MySQL之DML语言
2021/04/05 MySQL
写好Python代码的几条重要技巧
2021/05/21 Python