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 相关文章推荐
第五节 克隆 [5]
Oct 09 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
php中通过curl smtp发送邮件
Jun 05 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
php生成静态页面的简单示例
Apr 17 PHP
destoon网站转移服务器后搜索汉字出现乱码的解决方法
Jun 21 PHP
php中的ini配置原理详解
Oct 14 PHP
PHP随机生成信用卡卡号的方法
Mar 23 PHP
thinkPHP数据库增删改查操作方法实例详解
Dec 06 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
laravel框架中表单请求类型和CSRF防护实例分析
Nov 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
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
PHP获取Exif缩略图的方法
2015/07/13 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
2013/10/23 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
2017/01/18 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
Vue自定义事件(详解)
2017/08/19 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
Javascript表单序列化原理及实现代码详解
2020/10/30 Javascript
Vue.extend 登录注册模态框的实现
2020/12/29 Vue.js
python基于gevent实现并发下载器代码实例
2019/11/01 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
python hash每次调用结果不同的原因
2019/11/21 Python
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
中职生自荐信
2013/10/13 职场文书
毕业生个人求职的自我评价
2013/10/28 职场文书
公司庆典邀请函范文
2014/01/13 职场文书
小学老师寄语大全
2014/04/04 职场文书
党员干部廉洁承诺书
2014/05/28 职场文书
狮子林导游词
2015/02/03 职场文书
虚拟机linux端mysql数据库无法远程访问的解决办法
2021/05/26 MySQL
小程序实现文字循环滚动动画
2021/06/14 Javascript
SQL Server删除表中的重复数据
2022/05/25 SQL Server