Verimsiz üyelik testi (ARCH7075)
Anahtar php.performance.inefficient-membership-test · Önem warning · Kategori performance
in_array() ile bir liste üzerinde, özellikle döngü içinde, üyelik kontrolü her seferinde O(n) tarar. Anahtarlı bir harita kullanarak isset() ile O(1) arama yapın.
Hatalı
Bölüm başlığı “Hatalı”<?php$allowed = ['admin', 'editor', 'viewer'];foreach ($users as $user) { if (in_array($user->role, $allowed, true)) { $granted[] = $user; }}<?php$allowed = ['admin' => true, 'editor' => true, 'viewer' => true];foreach ($users as $user) { if (isset($allowed[$user->role])) { $granted[] = $user; }}Düzeltme
Bölüm başlığı “Düzeltme”Tekrarlı üyelik kontrolleri için listeyi anahtarlı bir haritaya çevirip isset() ile sorgulayın.