PHP复杂类型一共有两个 数组(基于键值对集合的一种东西) 和类。
基本类型不用说了,想也不用想表现为值类型。
对于两种复杂类型,下面做两个实例:
1.
$a = array(0); $b = $a; $b[] = 1; var_dump($a); var_dump($b);
运行结果:
array(1) { [0]=> int(0) } array(2) { [0]=> int(0) [1]=> int(1) }
可见,array表现为值类型。但是如果把第二行改为"$b = &$a;",就能在赋值时传引用了。
2.
Class A { public $a = 0; } $a = new A(); $b = $a; $b->a = 1; var_dump($a->a); var_dump($b->a);
运行结果: int(1) int(1)
可见,对象表现为引用类型。