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)
可见,对象表现为引用类型。