İçeriğe geç

Döngüde yeniden derlenen regex (ARCH7073)

Anahtar php.performance.regex-recompiled-in-loop · Önem info · Kategori performance

Sabit bir desen her yinelemede preg_match ile yeniden derlenir. Deseni döngü dışında bir kez tanımlayın; PHP onu yeniden kullanır.

<?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;
}
}

Sabit regex desenlerini döngü dışında bir değişkende tanımlayıp döngü içinde yeniden kullanın.