不懂,php大鸟进来看看

忧郁的欧尼酱 发布于 2015/10/20 17:50
阅读 874
收藏 0

一直不明白这个是什么意思?就是在foreach循环中后面的$key加上&这个有什么用?求大牛解释

foreach ($view as &$tab_field) { $tab_field = $this->initField($tab_field, $fields); $tb = isset($tab_field['table']) ? $tab_field['table'] : $control_tb; if(isset($tables[$tb])) { if($tab_field['virtual'] == true) { $tables[$tb]['plugs'][$tab_field['name']] = $tab_field; } else { if(!empty($tab_field['name'])) { $tables[$tb]['fields'] .= (empty($tables[$tb]['fields']) ? '' : ',').$tab_field['name']; } } } }

加载中
1
聽雨人
聽雨人
去php官网下个中文手册,在语言参考一节查找 引用 相关内容。
1
流水无痕Leo
流水无痕Leo

$a as $b 相当于把a复制一份,形成了b,对b做修改a不变

$a as &$b相当于给a起了个别名,对b做修改,就相当于对a做了修改。

不知道我这样回答你能明白不

1
回去干活
回去干活
很老的东西了,新版的PHP已经淘汰掉"&"取地址的符号.
1
定期马甲
定期马甲

&$value 倒是有人会用,目标通常是节约内存罢了,想着直接修改数组值,还是不要这样的了,重新用一个新数组赋值。

引用key还是很少的。

数据不太没必要用& 引用来节约内存,而且 foreach 中改变 循环的数组容易出错,

老实点不用&了,

0
Just-Code
Just-Code

引用来自“AxiosCro”的评论

$a as $b 相当于把a复制一份,形成了b,对b做修改a不变

$a as &$b相当于给a起了个别名,对b做修改,就相当于对a做了修改。

不知道我这样回答你能明白不

你说的是 sql,不是 php 吧。
0
Just-Code
Just-Code
& 符号表示引用,就是说 $tab_field 指向数组里的元素,而不是简单的把元素赋值给一个变量。看看手册里讲的更明白。
0
流水无痕Leo
流水无痕Leo

引用来自“roving_php”的评论

& 符号表示引用,就是说 $tab_field 指向数组里的元素,而不是简单的把元素赋值给一个变量。看看手册里讲的更明白。
我说的就是他这个,只是换了种通俗的说法而已。说什么数组指针引用什么的,太专业了,容易让人不明所以的。PS:你为什么觉得我在说sql呢,好奇怪。我说的哪里和sql有半毛钱关系了。
0
卖爷爷的老红薯
卖爷爷的老红薯
去w3c看看说明吧,真受不鸟。
0
Just-Code
Just-Code

引用来自“kideny”的评论

去w3c看看说明吧,真受不鸟。
受不鸟就把页面 X 掉,谁不是从“不会”走过来的?
0
Just-Code
Just-Code

引用来自“roving_php”的评论

& 符号表示引用,就是说 $tab_field 指向数组里的元素,而不是简单的把元素赋值给一个变量。看看手册里讲的更明白。

引用来自“AxiosCro”的评论

我说的就是他这个,只是换了种通俗的说法而已。说什么数组指针引用什么的,太专业了,容易让人不明所以的。PS:你为什么觉得我在说sql呢,好奇怪。我说的哪里和sql有半毛钱关系了。
foreach ($view as &$tab_field){}
所以你觉得这里给 $view 起了个别名叫 $tab_field 吗?
$view 是数组,$tab_field 是指向数组里的元素。要不然为什么要用 foreach 呀。
sql 里的 select a as b from table 才是给 a 起了个别名吧。
流水无痕Leo
流水无痕Leo
回复 @roving_php : 如果有一天给你一个毫无编程基础,培训班学仨月就工作的程序媛妹子给你带,你就深有体会了。。。。若是一直解释底层原理,会分分钟想切腹的。
Just-Code
Just-Code
回复 @AxiosCro : 做你的实习生好幸福。
流水无痕Leo
流水无痕Leo
你都这么大人了应该懂“相当于”是什么意思了吧,他能问这问题,说明一点c的基础都没有,跟小白解释 取地址什么的,他能听明白?整那么多术语有屁用。 一看你就没带过实习生,等你带过几个实习生就明白,通俗解释要省麻烦的多。
流水无痕Leo
流水无痕Leo
“意思是通过&使$bar和$foo表示同一个变量,改变其中一个值,另一个也会跟着变”,这是你说的。 “$a as &$b相当于给a起了个别名,对b做修改,就相当于对a做了修改。”,这是我说的。
返回顶部
顶部