php中static和const关键字用法分析


Posted in PHP onDecember 07, 2016

本文实例讲述了php中static和const关键字用法。分享给大家供大家参考,具体如下:

static关键字在类中描述的成员属性和成员函数都是静态的。

static成员能限制外部的访问,因为static成员是属于类的,而不是属于任何对象实例。

从内存的角度讲,其中对象是放在“堆内存”中,对象的引用是放在“栈内存”中,而静态成员被放在初始化静态段中,在类的第一次加载的时候加入的。可以让对内存中的所有对象所共享。如下图所示:

php中static和const关键字用法分析

<?php
class Person{
 public static $myCountry = "中国";
 public static function say(){
  echo "我的祖国是:".self::$myCountry."<br>";
 }
}
//输出静态属性
echo Person::$myCountry."<br>";
//调用静态方法
Person::say();
//修改静态属性
Person::$myCountry = "中国-江苏";
echo Person::$myCountry."<br>";
?>

输出结果为:

中国
我的祖国是:中国
中国-江苏

类中的静态方法只能访问类的静态的属性。类中的静态的方法是不能访问类的非静态的成员的。我们用self来访问类中的静态属性。self与this相似,只不过self代表静态方法所在的类,this相似,只不过self代表静态方法所在的类,this引用指针,代表调用此方法的对象。静态方法是不用对象调用的,所有就没有this这个引用了。没有this这个引用了。没有this,就没办法调用类中的其他的成员属性。

const是一个定义常量的关键字。在类里面常用const来定义常量。用“const”修饰的成员属性的访问方式和“static”修饰的成员访问的方式差不多,也是使用“类名”,在方法里面使用“self”关键字。但是不用使用“$”符号,也不能使用对象来访问。

<?php
class MyClass{
 const constant = 'constant value';
 function showConstant(){
  //方法中调用常量,没有$
  echo self::constant."<br>";
 }
}
//类直接调用,没有$
echo MyClass::constant."<br>";
$class = new MyClass();
$class ->showConstant();
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用文本文件制作留言板提示(上)
Oct 09 PHP
来自PHP.NET的入门教程
Oct 09 PHP
php下删除字符串中HTML标签的函数
Aug 27 PHP
cmd下运行php脚本
Nov 25 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
Zend Framework连接Mysql数据库实例分析
Mar 19 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
PHP实现验证码校验功能
Nov 16 PHP
php pdo连接数据库操作示例
Nov 18 PHP
PHP变量的作用范围实例讲解
Dec 22 PHP
php抽象方法和抽象类实例分析
Dec 07 #PHP
php接口技术实例详解
Dec 07 #PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 #PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 #PHP
php自定义时间转换函数示例
Dec 07 #PHP
php微信公众平台开发(四)回复功能开发
Dec 06 #PHP
php微信公众平台开发(三)订阅事件处理
Dec 06 #PHP
You might like
php5.3 不支持 session_register() 此函数已启用的解决方法
2013/11/12 PHP
php简单定时执行任务的实现方法
2015/02/23 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
redis+php实现微博(二)发布与关注功能详解
2019/09/23 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
2020/04/13 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
浅析vue中常见循环遍历指令的使用 v-for
2018/04/18 Javascript
Nodejs把接收图片base64格式保存为文件存储到服务器上
2018/09/26 NodeJs
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
python实现连接mongodb的方法
2015/05/08 Python
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
同时安装Python2 &amp; Python3 cmd下版本自由选择的方法
2017/12/09 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
python 重定向获取真实url的方法
2018/05/11 Python
Python 字典中的所有方法及用法
2020/06/10 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
韩国三星集团旗下时尚品牌官网:SSF SHOP
2016/08/02 全球购物
数控技术专业推荐信
2013/11/01 职场文书
应届专科生个人的自我评价
2014/01/05 职场文书
会计自荐信范文
2014/03/09 职场文书
终止劳动合同协议书
2014/04/14 职场文书
抗洪抢险事迹材料
2014/05/06 职场文书
八项规定自查自纠报告及整改措施
2014/10/26 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
交通安全学习心得体会
2016/01/18 职场文书
pandas提升计算效率的一些方法汇总
2021/05/30 Python
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL