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类与对象中的private访问控制的疑问
Nov 01 PHP
phpcms模块开发之swfupload的使用介绍
Apr 28 PHP
php自定义urlencode,urldecode函数实例
Mar 24 PHP
yii框架搜索分页modle写法
Dec 19 PHP
php数据序列化测试实例详解
Aug 12 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP微信网页授权的配置文件操作分析
May 29 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
php+js实现的无刷新下载文件功能示例
Aug 23 PHP
php生成HTML文件的类方法
Oct 11 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 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
新安装的MySQL数据库需要注意的安全知识
2008/07/30 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php编程实现获取excel文档内容的代码实例
2011/06/28 PHP
PHP缓存技术的使用说明
2011/08/06 PHP
浅谈PHP变量作用域以及地址引用问题
2013/12/27 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
2014/06/23 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
PHP redis实现超迷你全文检索
2017/03/04 PHP
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JS中Location使用详解
2015/05/12 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
jQuery使用bind动态绑定事件无效的处理方法
2018/12/11 jQuery
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
浅谈python中的数字类型与处理工具
2017/08/02 Python
python与caffe改变通道顺序的方法
2018/08/04 Python
我就是这样学习Python中的列表
2019/06/02 Python
Python变量访问权限控制详解
2019/06/29 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
Shell编程面试题
2016/05/29 面试题
公司庆典邀请函范文
2014/01/13 职场文书
致百米运动员广播稿
2014/01/29 职场文书
团队经理竞聘书
2014/03/31 职场文书
关于保护环境的标语
2014/06/09 职场文书
如何写早恋检讨书
2014/09/10 职场文书
Python办公自动化之教你用Python批量识别发票并录入到Excel表格中
2021/06/26 Python
Python实现批量将文件复制到新的目录中再修改名称
2022/04/12 Python