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和ACCESS写聊天室(三)
Oct 09 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
PHP MemCached 高级缓存应用代码
Aug 05 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
php获取远程图片并下载保存到本地的方法分析
Oct 08 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 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中的字符串函数
2006/10/09 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
php中的常用魔术方法总结
2013/08/02 PHP
PHP实现变色验证码实例
2014/01/06 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
js 图片等比例缩放代码
2010/05/13 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
判断某个字符在一个字符串中是否存在的js代码
2014/02/28 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
vue打包后显示空白正确处理方法
2017/11/01 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python中csv文件的若干读写方法小结
2018/07/04 Python
Python实现的对一个数进行因式分解操作示例
2019/06/27 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
python线程优先级队列知识点总结
2021/02/28 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
深入探究HTML5的History API
2015/07/09 HTML / CSS
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
大四自我鉴定范文
2013/10/06 职场文书
毕业生个人的求职信范文
2013/12/03 职场文书
电大毕业自我鉴定
2014/02/03 职场文书
医疗纠纷协议书
2014/04/16 职场文书
学校食品安全实施方案
2014/06/14 职场文书
物流管理专业推荐信
2014/09/06 职场文书
2015年技术员工作总结
2015/04/10 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS