我试图在Laravel播种机的run()
函数中运行以下行。
$numbers = <<<EOL
1
2
3
4
EOL;
$array = explode(PHP_EOL, $numbers);
运行php artisan migrate:refresh --seed
之后,我注意到$array
的值是:
Array (
0 => '1
2
3
4',
)
预期结果是:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
为什么播种机中的explode()
功能会忽略线的末端?
工作良好
$numbers = <<<EOL
1
2
3
4
EOL;
$array = explode("\n", $numbers)
PHP_EOL的目的是自动为平台选择正确的字符。对于DOS PHP_EOL - \r\n
,mac - \r
,unix - \n
。在目前的情况下,你需要静态使用\n
。