[lang-ref] ( string_split_lines ) ( php )

<?php
#[DataProvider('dataProviderStringSplitLinesAlternative')]
public function testStringSplitLinesAlternative1(string $text, int $count): void
{
	$lines = preg_split('/\r?\n/', $text);

	$this->assertNotFalse($lines);
	$this->assertCount($count, $lines);
}

public static function dataProviderStringSplitLinesAlternative(): array
{
	return [
		'no trailing newline' => ["aa\nbb\ncc", 3],
		'trailing newline creates empty item' => ["aa\nbb\ncc\n", 4],
		'two trailing newlines create two empty items' => ["aa\nbb\ncc\n\n", 5],
		'leading newline is kept' => ["\naa\nbb\ncc", 4],
		'middle blank line is kept' => ["aa\n\nbb\ncc", 4],
	];
}