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网站基础优化方法小结
Sep 29 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
ExtJS与PHP、MySQL实现存储的方法
Apr 02 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php垃圾代码优化操作代码
Aug 05 PHP
PHP内核探索:变量概述
Jan 30 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
Laravel5.* 打印出执行的sql语句的方法
Jul 24 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
Apr 09 PHP
PHP实现字符串的全排列详解
Apr 24 PHP
thinkphp5.1框架模板赋值与变量输出示例
May 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中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHP7 字符串处理机制修改
2021/03/09 PHP
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
js点击出现悬浮窗效果不使用JQuery插件
2014/01/20 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
2015/08/27 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python实现矩阵加法和乘法的方法分析
2017/12/19 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Python任务自动化工具tox使用教程
2020/03/17 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
档案接收函范文
2014/01/10 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
宣传委员竞选稿
2015/11/19 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
opencv 分类白天与夜景视频的方法
2021/06/05 Python
SQL中的三种去重方法小结
2021/11/01 SQL Server