我正在试图找出是什么导致了PHP行为的突然变化。我在内部PHP应用程序上有如下代码:
if(($bar + 200) >= ($row->barValue)){
echo 'yay';
}
$row是SQL查询的一行,这段代码已经运行了4个月以上,没有问题。突然,今天晚上,它开始吐出一个错误,大意是Fatal error: Unsupported operand types...
将变量包装在Floatval()或intval()中解决了问题。虽然我理解这些值在理想情况下需要设置为INT/Floats,但我不明白为什么会突然停止工作。这将是一个很大很长的重构工作。
我正在运行PHP7.0.x,据我所知,php和nginx最近都没有改变。
知道为什么这段代码现在才开始出错吗?是否有特定的nginx/mysql/php配置设置可能会对此产生影响?
发布于 2018-07-16 16:00:10
从我的测试来看,从4.3.11开始,PHP就一直是这样的。
不管怎样,$bar
不是你期望的那样,你不能使用+
在上面。
以下是这个问题的简单再现:
<?php
$bar = array();
echo $bar + 200;
有些代码库或数据存储区(如JSON或数据库)中的一些更改提供了无效的$bar
https://stackoverflow.com/questions/-100005580
复制相似问题