关于有时候变量值类型莫名改变的情况

今天上班,整理下周五遇到的一个BUG,在我接手的一个很古老的ecshop项目中按照新需求我给加了个if判断,如图

 {if $orders neq 'Y'}
                <input type="button" value="退款" class="button" onclick="return_goods('{$order[0].HmainTid}')" />
 {/if}

数据库查询出的变量赋值$order,类型是varchar,值打印是Y,但是这里就是不走if,后面改成数字2判断也不行,非常奇怪,使用gettype()获取的确实是string类型,问了一些做技术的朋友他们也没有遇到过这种情况,

一番扎耳挠腮之后仍是找不到哪里出的问题判断失败,最后一个朋友提醒了一句是不是类型在渲染或者赋值时出了什么问题,所以抱着试试看的心疼使用 了(string),然后发现就好了,因为技术所限不清楚究竟问题出现在哪里,但是找到了解决方法,记录下来

  $smarty->assign('orders',   (string)$orders[0]['Hredtag']);
原文地址:https://www.cnblogs.com/zdzdbk/p/10783141.html