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 相关文章推荐
PHP4.04简明安装
Oct 09 PHP
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
PHP中$_SERVER的详细参数与说明
Jul 29 PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php获取当前时间的毫秒数的方法
Jan 26 PHP
php使用CURL伪造IP和来源实例详解
Jan 15 PHP
PHP将进程作为守护进程的方法
Mar 19 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
yii2 上传图片的示例代码
Nov 02 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
Dec 16 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实际应用经验篇(7)
2006/10/09 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
PHP常用的三种设计模式
2017/02/17 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
php array 转json及java 转换 json数据格式操作示例
2019/11/13 PHP
Ext grid 添加右击菜单
2009/11/26 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
JavaScript语言精粹经典实例(整理篇)
2016/06/07 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
基于touch.js手势库+zepto.js插件开发图片查看器(滑动、缩放、双击缩放)
2016/11/17 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
webpack-mvc 传统多页面组件化开发详解
2019/05/07 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python生成任意频率正弦波方式
2020/02/25 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
运动会入场式解说词
2014/02/18 职场文书
成绩单公证书
2014/04/10 职场文书
工作感言一句话
2015/08/01 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
Python与C++中梯度方向直方图的实现
2022/03/17 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers
go goth封装第三方认证库示例详解
2022/08/14 Golang