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 相关文章推荐
用cookies来跟踪识别用户
Oct 09 PHP
PHP聊天室技术
Oct 09 PHP
PHP中ADODB类详解
Mar 25 PHP
php 生成WML页面方法详解
Aug 09 PHP
PHPMailer 中文使用说明小结
Jan 22 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
第三章 php操作符与控制结构代码
Dec 30 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
Aug 22 PHP
简单谈谈php中ob_flush和flush的区别
Nov 27 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
May 19 PHP
php的命名空间与自动加载实现方法
Aug 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的数组与字符串的转换函数整理汇总
2013/07/18 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
JavaScript中日期的相关操作方法总结
2015/10/24 Javascript
表单验证正则表达式实例代码详解
2015/11/09 Javascript
javascript实现瀑布流动态加载图片原理
2016/08/12 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
几种tab切换详解
2017/02/03 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
微信小程序实现手势图案锁屏功能
2018/01/30 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例
2017/12/14 Python
python实现图书管理系统
2018/03/12 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
Sony C++笔试题
2013/03/10 面试题
linux面试题参考答案(9)
2015/01/07 面试题
大学生求职信范文应怎么写
2014/01/01 职场文书
园林技术个人的自我评价
2014/01/08 职场文书
升学宴答谢词
2015/01/05 职场文书
安全教育第一课观后感
2015/06/17 职场文书
pytorch实现ResNet结构的实例代码
2021/05/17 Python