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.
Hatalı
Bölüm başlığı “Hatalı”<?phpforeach ($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; }}Düzeltme
Bölüm başlığı “Düzeltme”Sabit regex desenlerini döngü dışında bir değişkende tanımlayıp döngü içinde yeniden kullanın.