php面向对象中static静态属性与方法的内存位置分析


Posted in PHP onFebruary 08, 2015

本文实例分析了php面向对象中static静态属性与方法的内存位置。分享给大家供大家参考。具体如下:

static静态属性的内存位置——>类,而不是对象。下面做测试来证明一下

<?php
header("content-type:text/html;charset=utf-8");
class Human{
 static public $name = "小妹";
 public $height;
 public function tell(){
 }
}
echo Human:$name;
//不依赖于对象,就能直接访问。因为静态属性的内存位置是在类里,而不是对象。
$p1 = new Human();
$p2 = new Human();
print_r($p1);
echo $p1::$name = "夫人";
//在$p1对象上改变静态属性的值,那$p2对象也会相应的改变。
echo $p2::$name;
?>

输出结果可以看出:

1、echo Human:$name :类声明完毕,就存在static属性,并不依赖于对象。因此,静态属性只有一个(意思是在内存里,存放的位置并不是在对象里;如果在对象里,那实例化一个对象,就相应的有该静态的位置,如height属性);

2、print_r($p1):打印结果只有height属性,而没有name;

3、静态属性的值变化后,所有对象的该属性值都会受到影响。

对于方法,无论是静态的、还是普通的,都是存在于类内存空间中。证明也很简单,new一个对象,print_r(对象)即可。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
php注入实例
Oct 09 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
thinkPHP3.2.2框架行为扩展及demo示例
Jun 19 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
Dec 08 PHP
PHP中的empty、isset、isnull的区别与使用实例
Mar 22 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
Thinkphp 框架扩展之类库扩展操作详解
Apr 23 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
Dec 15 PHP
php面向对象中static静态属性和静态方法的调用
Feb 08 #PHP
php延迟静态绑定实例分析
Feb 08 #PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 #PHP
PHP处理大量表单字段的便捷方法
Feb 07 #PHP
PHP生成压缩文件实例
Feb 07 #PHP
PHP实现股票趋势图和柱形图
Feb 07 #PHP
PHP中的闭包(匿名函数)浅析
Feb 07 #PHP
You might like
php实现网站插件机制的方法
2009/11/10 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
纯javascript实现的小游戏《Flappy Pig》实例
2015/07/27 Javascript
js获取时间精确到秒(年月日)
2016/03/16 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
JavaScript中严格判断NaN的方法
2018/02/16 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
一个Java程序猿眼中的前后端分离以及Vue.js入门(推荐)
2019/04/19 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python生成随机密码的方法
2017/06/16 Python
python实现windows下文件备份脚本
2018/05/27 Python
Python在图片中插入大量文字并且自动换行
2019/01/02 Python
详解pandas安装若干异常及解决方案总结
2019/01/10 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
python 密码学示例——凯撒密码的实现
2020/09/21 Python
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
初中校园广播稿
2014/02/02 职场文书
《检阅》教学反思
2016/02/22 职场文书
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技