Skip to content

Commit 146d4ca

Browse files
committed
Strings::findPrefix accepts only string[] (BC break)
1 parent e31c8ff commit 146d4ca

2 files changed

Lines changed: 20 additions & 23 deletions

File tree

src/Utils/Strings.php

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -288,13 +288,10 @@ public static function compare(string $left, string $right, int $len = null): bo
288288

289289
/**
290290
* Finds the length of common prefix of strings.
291-
* @param string|array
291+
* @param string[]
292292
*/
293-
public static function findPrefix(...$strings): string
293+
public static function findPrefix(array $strings): string
294294
{
295-
if (is_array($strings[0])) {
296-
$strings = $strings[0];
297-
}
298295
$first = array_shift($strings);
299296
for ($i = 0; $i < strlen($first); $i++) {
300297
foreach ($strings as $s) {

tests/Utils/Strings.findPrefix().phpt

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,24 +13,24 @@ use Tester\Assert;
1313
require __DIR__ . '/../bootstrap.php';
1414

1515

16-
Assert::same('', Strings::findPrefix("\xC0\x80", "\xC1\x80"));
17-
Assert::same('', Strings::findPrefix("\xC0\x80", "\xC0\x81"));
18-
Assert::same('', Strings::findPrefix("\xC0\x80\x80", "\xC0\x80\x81"));
19-
Assert::same('', Strings::findPrefix("\xC0\x80\x80\x80", "\xC0\x80\x80\x81"));
20-
Assert::same('', Strings::findPrefix('', ''));
21-
Assert::same('', Strings::findPrefix('a', ''));
22-
Assert::same('', Strings::findPrefix('', 'b'));
23-
Assert::same('', Strings::findPrefix('a', 'b'));
24-
Assert::same('a', Strings::findPrefix('a', 'a'));
25-
Assert::same('a', Strings::findPrefix('aa', 'a'));
26-
Assert::same('a', Strings::findPrefix('a', 'ab'));
27-
Assert::same('a', Strings::findPrefix('aa', 'ab'));
28-
Assert::same('ab', Strings::findPrefix('ab', 'ab'));
29-
30-
Assert::same("I\u{F1}e", Strings::findPrefix("I\u{F1}e", "I\u{F1}e"));
31-
Assert::same("I\u{F1}", Strings::findPrefix("I\u{F1}", "I\u{F1}"));
32-
Assert::same('I', Strings::findPrefix("I\u{F2}", "I\u{F1}"));
33-
Assert::same('I', Strings::findPrefix("I\u{131}", "I\u{F1}"));
16+
Assert::same('', Strings::findPrefix(["\xC0\x80", "\xC1\x80"]));
17+
Assert::same('', Strings::findPrefix(["\xC0\x80", "\xC0\x81"]));
18+
Assert::same('', Strings::findPrefix(["\xC0\x80\x80", "\xC0\x80\x81"]));
19+
Assert::same('', Strings::findPrefix(["\xC0\x80\x80\x80", "\xC0\x80\x80\x81"]));
20+
Assert::same('', Strings::findPrefix(['', '']));
21+
Assert::same('', Strings::findPrefix(['a', '']));
22+
Assert::same('', Strings::findPrefix(['', 'b']));
23+
Assert::same('', Strings::findPrefix(['a', 'b']));
24+
Assert::same('a', Strings::findPrefix(['a', 'a']));
25+
Assert::same('a', Strings::findPrefix(['aa', 'a']));
26+
Assert::same('a', Strings::findPrefix(['a', 'ab']));
27+
Assert::same('a', Strings::findPrefix(['aa', 'ab']));
28+
Assert::same('ab', Strings::findPrefix(['ab', 'ab']));
29+
30+
Assert::same("I\u{F1}e", Strings::findPrefix(["I\u{F1}e", "I\u{F1}e"]));
31+
Assert::same("I\u{F1}", Strings::findPrefix(["I\u{F1}", "I\u{F1}"]));
32+
Assert::same('I', Strings::findPrefix(["I\u{F2}", "I\u{F1}"]));
33+
Assert::same('I', Strings::findPrefix(["I\u{131}", "I\u{F1}"]));
3434

3535
Assert::same('', Strings::findPrefix(['', '']));
3636
Assert::same('', Strings::findPrefix(['', '', '']));

0 commit comments

Comments
 (0)