Laravel Homestead & Laravel Forge 中的不同行为
Different behavior in Laravel Homestead & Laravel Forge
我的 PHP 代码中有一个简单的错误:
$string += 'something' . $Car->id . ',';
这导致了 Homestead 和 Forge 中的不同行为:
Homestead $string 的结果:
0
锻造结果:
Error: A non-numeric value encountered
有人知道为什么吗?以及如何将 Homestead 行为更改为与伪造行为相同的行为?绝对更好..
更新
对不起,我的问题不是很清楚。问题不是关于错误本身 += 而不是 .=,我知道这一点。
问题是为什么在一种环境中会出现错误,而在另一种环境中却不会。
两种环境的配置方式相同 (php.ini):
error_reporting = E_ALL
display_errors = On
这不仅仅是一个通知,而是一个错误。
您的问题是由 +=
运算符引起的。这用于将数字加在一起,而您试图连接字符串。
你应该使用 .=
$string .= 'something' . $Car->id . ',';
或者:
$string = $string . 'something' . $Car->id . ',';
您在 forge 中看到该消息的原因是它似乎打开了 PHP 警告。
+=
将数字(右值)添加到变量的值(左值)并将其存储在变量中。
因为你的代码
$string += 'something' . $Car->id . ',';
将 $string
作为左值并包含非数字字符,因此出现错误。您的意思可能是 .=
将字符串(右值)连接到变量的值(左值)并将其存储在变量中。
Laravel Homestead 的 PHP 版本是 7.0.8,Laravel Forge 的 PHP 版本是 7.1.0-3。
我将 Laravel Homestead 更新到最新的 PHP 7.1.0-2,现在 Homestead 显示正确的错误:
Error: A non-numeric value encountered
我不确定它是 PHP 版本还是新版本对 Homestead 的其他更改。这就是我发现的。
我的 PHP 代码中有一个简单的错误:
$string += 'something' . $Car->id . ',';
这导致了 Homestead 和 Forge 中的不同行为:
Homestead $string 的结果:
0
锻造结果:
Error: A non-numeric value encountered
有人知道为什么吗?以及如何将 Homestead 行为更改为与伪造行为相同的行为?绝对更好..
更新
对不起,我的问题不是很清楚。问题不是关于错误本身 += 而不是 .=,我知道这一点。
问题是为什么在一种环境中会出现错误,而在另一种环境中却不会。
两种环境的配置方式相同 (php.ini):
error_reporting = E_ALL
display_errors = On
这不仅仅是一个通知,而是一个错误。
您的问题是由 +=
运算符引起的。这用于将数字加在一起,而您试图连接字符串。
你应该使用 .=
$string .= 'something' . $Car->id . ',';
或者:
$string = $string . 'something' . $Car->id . ',';
您在 forge 中看到该消息的原因是它似乎打开了 PHP 警告。
+=
将数字(右值)添加到变量的值(左值)并将其存储在变量中。
因为你的代码
$string += 'something' . $Car->id . ',';
将 $string
作为左值并包含非数字字符,因此出现错误。您的意思可能是 .=
将字符串(右值)连接到变量的值(左值)并将其存储在变量中。
Laravel Homestead 的 PHP 版本是 7.0.8,Laravel Forge 的 PHP 版本是 7.1.0-3。
我将 Laravel Homestead 更新到最新的 PHP 7.1.0-2,现在 Homestead 显示正确的错误:
Error: A non-numeric value encountered
我不确定它是 PHP 版本还是新版本对 Homestead 的其他更改。这就是我发现的。