首先,把$a作为参数惨到函数里面去,由于有个&符号,就跟C语言里面的按地址传递差不多,$e跟$a都指向同一个内存地址了,
$e++,$e跟$a所指向的那个内存中的值也自增1
再看,函数b前面也用一个引用符号&,表示函数返回值也是按地址传递的,所以$b,$e都指向同一个内存地址,
所以,$a,$e,$b都是引用的一个内存中的值
最后输出$a,$e,$b值都是一样的
$e++,$e跟$a所指向的那个内存中的值也自增1
再看,函数b前面也用一个引用符号&,表示函数返回值也是按地址传递的,所以$b,$e都指向同一个内存地址,
所以,$a,$e,$b都是引用的一个内存中的值
最后输出$a,$e,$b值都是一样的
这个函数执行后,$a = 2;因为是传值引用.
2 函数内return $e;
$d = &b($a); 相当于将$a传址给$d.
3 $d++,所以$a++.
4 所以$a等于3