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 快速生成 Flash 动画的方法
Mar 06 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
Jul 11 PHP
php中mysql连接方式PDO使用详解
Feb 25 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
详解Yii2高级版引入bootstrap.js的一个办法
Mar 21 PHP
php中时间函数date及常用的时间计算
May 12 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 PHP
PHP高并发和大流量解决方案整理
Mar 09 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 URL参数获取方式的四种例子
2014/02/28 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
php使用curl获取https请求的方法
2015/02/11 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP模板引擎Smarty中的保留变量用法分析
2016/04/11 PHP
PHP云打印类完整示例
2016/10/15 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
比Jquery的document.ready更快的方法
2010/04/28 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
2014/10/20 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
jQuery实现简单的下拉菜单导航功能示例
2017/12/07 jQuery
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
React中的render何时执行过程
2018/04/13 Javascript
jQuery事件多次绑定与解绑问题实例分析
2019/02/19 jQuery
简单了解vue.js数组的常用操作
2019/06/17 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
2008/09/06 Python
python ip正则式
2009/05/07 Python
python基础教程之分支、循环简单用法
2016/06/16 Python
Django URL传递参数的方法总结
2016/08/28 Python
python 计算文件的md5值实例
2017/01/13 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
利用python实现周期财务统计可视化
2019/08/25 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
2014年护理部工作总结
2014/11/14 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
2015小学教育教学工作总结
2015/07/21 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电
Python实现仓库管理系统
2022/05/30 Python