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 array_multisort()函数的使用札记
Jul 03 PHP
php各种编码集详解和以及在什么情况下进行使用
Sep 11 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
PHP 使用MySQL管理Session的回调函数详解
Jun 21 PHP
php使用codebase生成随机数
Mar 25 PHP
PHP基于imap获取邮件实例
Nov 11 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
Sep 21 PHP
PHP自定义错误用法示例
Sep 28 PHP
phpmailer绑定邮箱的实现方法
Dec 01 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP安全之register_globals的on和off的区别
Jul 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
Session的工作方式
2006/10/09 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
JavaScript 拾漏补遗
2009/12/27 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
jquery中对表单的基本操作代码
2010/07/29 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
jquery调取json数据实现省市级联的方法
2015/01/29 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
python多线程编程中的join函数使用心得
2014/09/02 Python
Python利用正则表达式实现计算器算法思路解析
2018/04/25 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
CSS3中颜色线性渐变实战
2015/07/18 HTML / CSS
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
2014工程部年度工作总结
2014/12/17 职场文书
授权委托书
2015/01/28 职场文书
python使用opencv对图像添加噪声(高斯/椒盐/泊松/斑点)
2022/04/06 Python
mysql 排序失效
2022/05/20 MySQL