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 相关文章推荐
php实现首页链接查询 友情链接检查的代码
Jan 05 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
May 03 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
php实现字符串翻转的方法
Mar 27 PHP
php使用Jpgraph绘制复杂X-Y坐标图的方法
Jun 10 PHP
js代码实现微博导航栏
Jul 30 PHP
在WordPress中实现评论头像的自定义默认和延迟加载
Nov 24 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 PHP
THINKPHP5分页数据对象处理过程解析
Oct 28 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
php 多线程上下文中安全写文件实现代码
2009/12/28 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
PHP strncasecmp字符串比较的小技巧
2011/01/04 PHP
php 定界符格式引起的错误
2011/05/24 PHP
php继承的一个应用
2011/09/06 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
Javascript的严格模式strict mode详细介绍
2014/06/06 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
微信小程序视图template模板引用的实例详解
2017/09/20 Javascript
浅谈ajax在jquery中的请求和servlet中的响应
2018/01/22 jQuery
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
JointJS流程图的绘制方法
2018/12/03 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Python中函数的多种格式和使用实例及小技巧
2015/04/13 Python
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
python中正则的使用指南
2016/12/04 Python
python编写分类决策树的代码
2017/12/21 Python
python编写弹球游戏的实现代码
2018/03/12 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
python模块导入的方法
2019/10/24 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
公司领导推荐信
2013/11/12 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
学校党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
Docker官方工具docker-registry案例演示
2022/04/13 Servers