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的相似度计算函数:levenshtein的使用介绍
Apr 15 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
php判断类是否存在函数class_exists用法分析
Nov 14 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
php微信公众账号开发之前五个坑(一)
Sep 18 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 PHP
php中对象引用和复制实例分析
Aug 14 PHP
php 中self,this的区别和操作方法实例分析
Nov 04 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
Dec 04 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
PHP中foreach循环中使用引用要注意的地方
2011/01/02 PHP
php中转义mysql语句的实现代码
2011/06/24 PHP
JS控件的生命周期介绍
2012/10/22 Javascript
json数据的列循环示例
2013/09/06 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/06/05 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
清除js缓存的多种方法总结
2016/12/09 Javascript
vue增删改查的简单操作
2017/07/15 Javascript
详解angularjs popup-table 弹出框表格指令
2017/09/20 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
2018/04/17 Javascript
js实现购物车功能
2018/06/12 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
nodejs检测因特网是否断开的解决方案
2019/04/17 NodeJs
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
python中sys.argv参数用法实例分析
2015/05/20 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
基于Django模板中的数字自增(详解)
2017/09/05 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
详解用python写网络爬虫-爬取新浪微博评论
2019/05/10 Python
python3使用腾讯企业邮箱发送邮件的实例
2019/06/28 Python
pytorch 归一化与反归一化实例
2019/12/31 Python
快速查找Python安装路径方法
2020/02/06 Python
VScode连接远程服务器上的jupyter notebook的实现
2020/04/23 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
国际化的太阳镜及太阳镜配件零售商:Sunglass Hut
2016/07/26 全球购物
MySQL面试题
2014/01/12 面试题
传播学毕业生求职信
2013/10/11 职场文书
入党积极分子十八届四中全会思想汇报
2014/10/23 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
Nginx代理同域名前后端分离项目的完整步骤
2021/03/31 Servers