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 相关文章推荐
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
Jan 12 PHP
浅析php过滤html字符串,防止SQL注入的方法
Jul 02 PHP
Zend Studio 实用快捷键一览表(精心整理)
Aug 10 PHP
php实现把url转换迅雷thunder资源下载地址的方法
Nov 07 PHP
php实现字符串首字母转换成大写的方法
Mar 17 PHP
Yii实现的多级联动下拉菜单
Jul 13 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
Oct 26 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
php session_decode函数用法讲解
May 26 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通过sort()函数给数组排序的方法
2015/03/18 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
PHP后台实现微信小程序登录
2018/08/03 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
jQuery帮助之筛选查找 children([expr])
2011/01/31 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
jquery 将当前时间转换成yyyymmdd格式的实现方法
2016/06/01 Javascript
JS重载实现方法分析
2016/12/16 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
使用python判断jpeg图片的完整性实例
2019/06/10 Python
Python pygame绘制文字制作滚动文字过程解析
2019/12/12 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python 如何创建一个线程池
2020/07/28 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
python音频处理的示例详解
2020/12/23 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
canvas粒子动画背景的实现示例
2018/09/03 HTML / CSS
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
详解使用postMessage解决iframe跨域通信问题
2019/11/01 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
工程质量承诺书
2014/03/27 职场文书
优秀教师单行材料
2014/12/16 职场文书
2015年少先队活动总结
2015/03/25 职场文书
无线电知识基础入门篇
2022/02/18 无线电
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript