En iyi ihtimalle başına birden fazla değer ile PHP bir geçiş yapmak için bir yol?
Nasıl bu PHP switch deyimi ister misin?
Ayrıca bu kadar küçük versiyonları olduğunu unutmayın, oluşturmak için gereken 1 çok şey olacak daha fazla değer eklenir.
Sürüm 1:
switch ($p) {
case 'home':
case '':
$current_home = 'current';
break;
case 'users.online':
case 'users.location':
case 'users.featured':
case 'users.new':
case 'users.browse':
case 'users.search':
case 'users.staff':
$current_users = 'current';
break;
case 'forum':
$current_forum = 'current';
break;
}
2. Sürüm
switch ($p) {
case 'home':
$current_home = 'current';
break;
case 'users.online' || 'users.location' || 'users.featured' || 'users.browse' || 'users.search' || 'users.staff':
$current_users = 'current';
break;
case 'forum':
$current_forum = 'current';
break;
}
GÜNCELLEME - Testi Sonuçları
10,000 yineleme, bazı Hız Testi yaptım
Notdatetime1: 0.0199389457703 // if ifadeleri< / ^ br . Time2: //0.0389049446106 açıklamaları geçin< / ^ br . Time3: 0.106977939606 // Diziler
CEVAP
Bilinmeyen bir dize, herhangi bir durum ve bir grup anlamaya ihtiyacımız vardiğerkadar uyuyor, tek çözüm daha fazla öğe eklemek gibi yavaş vermiyor dizeleri bir dizi kullanın, ama anahtarları gibi tüm olası dizeler. Böylece switch aşağıdaki ile değiştirilebilir:
// used for $current_home = 'current';
$group1 = array(
'home' => True,
);
// used for $current_users = 'current';
$group2 = array(
'users.online' => True,
'users.location' => True,
'users.featured' => True,
'users.new' => True,
'users.browse' => True,
'users.search' => True,
'users.staff' => True,
);
// used for $current_forum = 'current';
$group3 = array(
'forum' => True,
);
if(isset($group1[$p]))
$current_home = 'current';
else if(isset($group2[$p]))
$current_users = 'current';
else if(isset($group3[$p]))
$current_forum = 'current';
else
user_error("\$p is invalid", E_USER_ERROR);
Bu* *6, Bir kadar temiz görünmüyor amahızlıfonksiyonları ve sınıfların küçük bir kütüphanesi derli toplu tutmak için dahil değil çözüm. Hala çok kolay diziler için öğeleri ekleyin.
Daha iyi - birden fazla faaliyet veya ...
Nasıl bir komut ya da yerel vimrc dosy...
Nasıl görev başına bir kullanıcı veya ...
Nasıl birden fazla satır düzenleme yap...
Sekmeler arasında geçiş yapmak için na...