Aller au contenu

Regex recompiled in loop (ARCH7073)

Ce contenu n’est pas encore disponible dans votre langue.

Key php.performance.regex-recompiled-in-loop · Severity info · Category performance

A constant pattern is recompiled by preg_match on every iteration. Define the pattern once outside the loop; PHP reuses it.

<?php
foreach ($lines as $line) {
if (preg_match('/^\d{4}-\d{2}-\d{2}/', $line)) {
$dates[] = $line;
}
}
<?php
$pattern = '/^\d{4}-\d{2}-\d{2}/';
foreach ($lines as $line) {
if (preg_match($pattern, $line)) {
$dates[] = $line;
}
}

Hoist constant regex patterns into a variable outside the loop and reuse it inside.