我有这样一段代码,<?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数组指针。
请教大家帮忙解析一下。不胜感谢。
$a = array('key1'=>'value1','key2'=>'value2');
$t = &$a;
foreach ($t as $item)
{
echo $item;
}
?>我把第三行改成 $t = $a;这样前者和后者的代码输出的东西都是一样的。
value1 value2,不知道怎样理解,是不是这样$t = &$a;是直接付给$t的数组内容, $t = $a;这样是直接付给$t数组指针。
请教大家帮忙解析一下。不胜感谢。
与你理解的恰好相反, = &为引用赋值,只传地址, = 为复制赋值,将$a的值复制给$t,与C语言不同,php是没有指针概念的,但是你可以这样去理解