Laravel Homestead&amp ;; Laravel Forge

时间:2016-12-23 15:00:31

标签: laravel homestead laravel-forge php-7.1

我的PHP代码中有一个简单的错误:

$string += 'something' . $Car->id . ',';

这导致了Homestead和Forge的不同行为:

$ string的宅基地结果:

  

0

锻造结果:

  

错误:遇到非数字值

有人知道为什么吗?我怎样才能将宅基地的行为改变为像伪造者一样?它绝对更好......

更新

对不起,我的问题并不完全清楚。问题不在于错误本身+ =而不是。=,我知道这一点。

问题是为什么在一个环境中出现错误而在另一个环境中出现错误。

两种环境的配置方式相同(php.ini):

error_reporting = E_ALL
display_errors = On

这不只是一个通知,而是一个错误。

3 个答案:

答案 0 :(得分:2)

您的问题是由于+=运算符。这用于将数字加在一起,而您正在尝试连接字符串。

您应该使用.=

$string .= 'something' . $Car->id . ',';

或者:

$string = $string . 'something' . $Car->id . ',';

您在伪造中看到该消息的原因是因为它似乎已启用PHP警告。

答案 1 :(得分:1)

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中的新版本的另一个变化,我不会感到害羞。这就是我发现的。

答案 2 :(得分:0)

+=将一个数字(右值)添加到变量的值(左值)并将其存储在变量中。

自你的代码

$string += 'something' . $Car->id . ',';

左侧有$string并包含非数字字符,因此出错。您可能意味着.=将字符串(右值)与变量值(左值)连接起来并将其存储在变量中。

相关问题