Laravel Homestead & Laravel Forge 的不同行为



我在我的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作为左值,并包含非数字字符,因此错误。您可能是指将字符串(右值)连接到变量(左值)并将其存储在变量中的值的.=

最新更新