Değişken PHP değerleri bir dizi birini eşleşirse denetlemek için en kısa yolu nedir?

3 Cevap php

Şu anda aktif sayfasını vurgulamak için bir nav listesi için bu kullanıyorum:

<?= ($current_page == 'thema_list' ? 'class="on"' : '') ?>

Başka bir sayfayı kontrol etmek için bu genişletme olacaktır:

<?= ($current_page == 'thema_list' || $current_page == 'thema_edit' ? 'class="on"' : '') ?>

Bu tekrarlanmasını önlemek için bir yolu var mı?

3 Cevap

2 değerleri için, bu muhtemelen onu işlemek için PHP gereken zaman miktarı için hızlı yöntemdir, ancak değerleri bir sürü varsa in_array'in kullanabilirsiniz:

<?= (in_array($current_page, array('thema_list', 'thema_edit')) ? 'class="on"' : '') ?>

Ayrıca this question sadece tek tek her bir değer için kontrol vs İn_Array'in ilgili bazı hız testleri ile ilgili check out.

Sen in_array() ile bir dizi kullanabilirsiniz

$matches = array("thema_list", "thema_edit", "thema_other");
if (in_array($current_page, $matches)) {
    echo 'class="on"'
}

Eğer onları bir diziye koymak ve sonra da kullanabilirsiniz:

if(in_array($current_page, $array_values))
{
    echo 'class on';
}