php对象在内存中的存在形式分析

yipeiwu_com7年前PHP代码库

本文实例分析了php对象在内存中的存在形式。分享给大家供大家参考。具体分析如下:

<?php
class Person{
 public $name;
 public $age;
}
$p1 = new Person();
$p1->name = "小明";
$p1->age=80;
$p2=$p1;
$p2->age=85;
echo $p2->name;
echo $p1->age;
?>

(1)$p1对应内存地址,假设是0x123,($p1和地址存放在栈区,相当于我们查字典时的索引);
(2)通过内存地址的索引,找到堆区。堆区里面存放着”小王“,”80“等数据
(3)$p2 = $p1,实际上是将$p1的内存地址0x123传给$p2,堆区里的属性$name,$age不变,也就是不会再重新复制一份。所以,在改变$p2->age=85时,$p1->age的值也改变了。

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

相关文章

jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码

jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码

本例用到其他2个php class.upload.php和 functions.php还有css和js以及img文件 完整实例代码点击此处本站下载。 效果图如下: 实现代码如下: Ja...

PHP的Yii框架中Model模型的学习教程

模型是 MVC 模式中的一部分, 是代表业务数据、规则和逻辑的对象。 模型是 CModel 或其子类的实例。模型用于保持数据以及与其相关的业务逻辑。 模型是单独的数据对象。它可以是数据表...

PHP实现递归复制整个文件夹的类实例

本文实例讲述了PHP实现递归复制整个文件夹的类。分享给大家供大家参考。具体如下: <?php /* * 文件夹复制类 */ class CopyFile { pub...

PHP中使用foreach和引用导致程序BUG的问题介绍

复制代码 代码如下: $a = array(1, 2); $b = array(11, 12); foreach($a as &$r){ } foreach($b as $r){ } e...

超强多功能php绿色集成环境详解

超强多功能php绿色集成环境详解

很多人都听过WAMP这个词吧,首先来看WAMP是什么意思? Windows下的Apache+MySQL+PHP,称为WAMP。 属于WAMP环境的集成软件有很多,比如wampserver...