php 取地址&符号使用遇到的一个问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mzc186/article/details/78221334

环境:tp3.1.3+wamp(php5.6.25)
当使用如下&$k方式更改$k['feature'] 元素的值时,变量var_dump出来时没有问题的,但是在模板赋值的时候会莫名的没有任何效果,也就是值似乎变为空了,而且$k 数组其他元素的值似乎也都为空了,反正就是这些值变得让模板渲染不出来了.非常奇怪,不确定是php本省的问题还是tp框架的bug,但我认为比较可能是tp框架的问题.

foreach($contList as &$k){
          $k['feature']=mb_substr("$k[feature]",'0',100,'utf-8');
        }

针对这种情况,把代码改成如下,则在模板里就可以成功渲染出来了.

foreach($contList as $k=>$v){
        $contList[$k]['feature']=mb_substr("$v[feature]",'0',100,'utf-8');
        }

这里顺便提一下$v[feature] ,对于数组元素的引用,如果其key(也就是键值)是字符串,那么一般是需要用单引号或双引号引起来的,比如这样$v['feature'] ,但我们这边的"$v[feature]" 却没有将feature键值用引号引起来,这是因为在这里如果直接把feature键值引起来,比如这样"$v['feature']" ,那么事实上会有冲突,应该是字符串连接运算的问题,系统会认为[‘之间没有接字符串连接符,而’]这种情况也是一样.所以在这里,就出现了一种对数组元素比较奇怪的引用方式,即字符串的键值没有用引号包围起来的$v[feature] 这种写法.

猜你喜欢

转载自blog.csdn.net/mzc186/article/details/78221334