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
一个用于网络的工具函数库
Oct 09 PHP
常用的php ADODB使用方法集锦
Mar 25 PHP
php ci框架中加载css和js文件失败的原因及解决方法
Jul 29 PHP
一个经典的PHP验证码类分享
Nov 18 PHP
php建立Ftp连接的方法
Mar 07 PHP
PHP图片加水印实现方法
May 06 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
May 06 PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
Jun 16 PHP
PHP检查文件是否存在,不存在自动创建及读取文件内容操作示例
Jan 23 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
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
用javascript实现页面打印的三种方法
2007/03/05 Javascript
javascript add event remove event
2008/04/07 Javascript
斜45度寻路实现函数
2009/08/20 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
jQuery Real Person验证码插件防止表单自动提交
2015/11/06 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
使用jQuery或者原生js实现鼠标滚动加载页面新数据
2016/03/06 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
Angular4的输入属性与输出属性实例详解
2017/11/29 Javascript
微信小程序中上传图片并进行压缩的实现代码
2018/08/28 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
关于vue路由缓存清除在main.js中的设置
2019/11/06 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
10招!看骨灰级Pythoner玩转Python的方法
2019/04/15 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
Python 变量的创建过程详解
2019/09/02 Python
函授本科毕业自我鉴定
2013/10/09 职场文书
工程业务员岗位职责
2013/12/31 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
食堂管理制度范本
2015/08/04 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
错误码NET::ERR_CERT_DATE_INVALID证书已过期解决方法?
2022/07/07 数码科技