为什么同事运行的好好的程序到我电脑上会出错?
因为开发没有统一环境,每个人都可以建一套自己喜欢的开发环境(噗~@#$%^&*())
同事用PHP7.0 编写的demo,我pull完代码,本地PHP7.2运行,得到结果不是预计结果. 到底咋回事呢?
排查
xdebug 跑一跑看是哪不对, 咦, 为什么明明期望这个变量是个数组,但是我跑的结果不是个数组乜~
做个测试吧
打开http://3v4l.org 大专栏 PHP5和PHP7中变量声明和使用的影响写个demo跑一跑吧;
这个看起来是正常的~ 嗯? 第三行注释掉是什么意思呢? 来让我们放开注释看看.
啊哦~ PHP7.1+ 报错了, 这英语也看不懂啊? 复制去翻译?好麻烦, 到底咋个意思嘛? 算了 看起来是[]什么什么
那我们给[]里指定个下标继续测试
嗯? 什么情况,没报错了,但是PHP7.1+ 得到个字符串 我的数组呢? 这个乱码字符串什么意思呢? 我们继续
啊哦~ 原来如此~ 因为之前声明 $array = ‘’; 的时候 $array的类型是字符串, 下面的处理 PHP7.1+ 依旧把$array 当做字符串来操作的, 但是之前的版本,会自动转换字符串$array的类型为数组来操作