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

环境: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] 这种写法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值