首页 > Web开发 > 详细

php对象在内存中存在形式

时间:2015-10-19 17:08:29      阅读:257      评论:0      收藏:0      [点我收藏+]

1,php中基本数据类型存在于栈区,对象这种数据类型存在于堆区;

比如如下代码,两个指针指向同一个对象,其输出相同

<?php
/**
 * Created by PhpStorm.
 * User: usa007lhy
 * Date: 2015/10/15
 * Time: 21:38
 */
//定义一个类描述人
class Person{
    public $name;
    public $age;
}
$c = 90;
$a = new Person();
$a->name = ‘小明‘;
$a->age = 20;
$b = $a;
echo $a->name."<br/>";
echo $b->name."<br/>";
?>

  其输出

技术分享

代码对应的内存变化如下图:

技术分享

2,如果给一个函数传递一个对象,实际传递的是一个地址,指向对象的地址;如果给函数传递的是基本数据类型(整数、小数、布尔、字符串),传递的是值;如果给函数传递的是数组,传递的是值;

3,php中构造方法

php存在两种构造方法,(1)构造函数名和类名相同,此方法一直通用;(2)public function __construct(){},此方法是php5版本新提出来的,在php4及之前版本没法使用。如果两种方法同时存在,优先选择第二种方法__construct()。在编程过程中,优先使用第二种构造方法。

<?php
class Person{
    public $name;
    public $age;
    public function __construct(){
        echo "我是新的构造方法,优先级高于第二种方法";
    }
    public function Person(){
        echo "我是旧的构造方法,优先级低于第一种方法";
    }
}
$p1 = new Person();
?>

  

php对象在内存中存在形式

原文:http://www.cnblogs.com/usa007lhy/p/4892085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!