我有这样一段代码,<?php
$a = array('key1'=>'value1','key2'=>'value2');
$t = &$a;
foreach ($t as $item)
{
echo  $item;
}
?>我把第三行改成 $t = $a;这样前者和后者的代码输出的东西都是一样的。
value1 value2,不知道怎样理解,是不是这样$t = &$a;是直接付给$t的数组内容, $t = $a;这样是直接付给$t数组指针。
请教大家帮忙解析一下。不胜感谢。

解决方案 »

  1.   

    &是传地址,就是$t变成$a了,你改$t就是改$a,不用&就是复制,新增了变量$t,但不管怎么说,值不会变
      

  2.   

    在看ci框架的原代码,觉得很麻烦啊,很多函数包含require函数,在包含redquire函数的页面又调用这个require页面中的函数,头痛!
      

  3.   

    ci框架还很好说吧,单一控制器实例,比那些多控制器实例要来的清晰吧基本上一个CodeIgniter.php就是详细描述了整个流程。至于 =& 和 = 的关系,上面已经说的很清楚了
      

  4.   


    与你理解的恰好相反, = &为引用赋值,只传地址, = 为复制赋值,将$a的值复制给$t,与C语言不同,php是没有指针概念的,但是你可以这样去理解