我在我的php代码中有一个简单的错误:
$string += 'something' . $Car->id . ',';
导致霍姆斯特德和伪造的行为不同:
$ string的宅基地结果:
0
伪造结果:
错误:遇到的非数字值
有人知道为什么吗?我该如何将宅基行为更改为像Forge One一样?绝对更好..
更新
对不起,我的问题并不完全清楚。问题不是关于错误本身 =而不是。=,我知道这一点。
问题是为什么在一个环境中出现错误,而在另一个环境中则没有出现。
两个环境的配置方式相同(php.ini):
error_reporting = E_ALL
display_errors = On
这不仅是一个通知,也是一个错误。
您的问题是因为+=
操作员。这是用来将数字添加在一起的,而您正在尝试连接字符串。
您应该使用.=
$string .= 'something' . $Car->id . ',';
或替代:
$string = $string . 'something' . $Car->id . ',';
您在Forge中看到该消息的原因是因为它似乎已打开PHP警告。
Laravel Homestead的PHP版本为7.0.8,Laravel Forge 7.1.0-3的PHP版本。
我将Laravel Homestead更新为使用PHP 7.1.0-2的最新homestead,现在霍姆斯特德出现了正确的错误:
Error: A non-numeric value encountered
我不只是PHP版本,还是新版本的Homestead中的另一个更改。那就是我发现的。
+=
将一个数字(右值)添加到变量的值(左值),并将其存储在变量中。
由于您的代码
$string += 'something' . $Car->id . ',';
具有$string
作为左值,并包含非数字字符,因此错误。您可能是指将字符串(右值)连接到变量(左值)并将其存储在变量中的值的.=
。