function genWords($alphabet, $length) {
$alph = mb_str_split($alphabet);
$maxChar = count($alph);
$idxs = array_fill(0, $length, 0);
while (true) {
yield implode('', array_map(fn($idx) => $alph[$idx], $idxs));
$pos = $length - 1;
while (true) {
$idxs[$pos] += 1;
if ($idxs[$pos] < $maxChar) {
break;
}
$idxs[$pos] = 0;
$pos -= 1;
if ($pos < 0) {
return;
}
}
}
}
foreach (genWords('АБВГДЕЁЖЗ', 5) as $word) {
print "{$word}\n";
}
function isSeq3(int $number) : bool
{
$prevDigit = 0;
$seqLen = 0;
while ($number > 0) {
$digit = $number % 10;
if ($digit === $prevDigit - 1) {
$seqLen += 1;
} else {
$seqLen = 1;
}
if ($seqLen === 3) {
return true;
}
$number = intdiv($number, 10);
$prevDigit = $digit;
}
return false;
}
mysqli_report(MYSQLI_REPORT_OFF);
, либо, что более правильно, использовать try ... catch.