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(); ?>
原文:http://www.cnblogs.com/usa007lhy/p/4892085.html