Geçenlerde iki değişken yarım düzine permütasyon biri olsaydı ben bir eylem yapmak istediğini, bunun üzerine çeşitli değişimlerden vardı iki ilgili değişkenler vardı bir durum bulundu.
Veri değişkenler arasında ne bir örnek olarak:
$months = array('January', 'February', 'March', 'April', 'May', 'June', 'July',
'August', 'September', 'October', 'November', 'December');
$days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
$month = $months[array_rand($months)];
$day = $days[array_rand($days)];
$week = rand(1, 4);
Ne bu böyle, bir dizi yer basit bir anahtar karşılaştırma ile geldi:
function checkInputForCriteria($month, $day, $week)
{
switch (array($month, $day))
{
case array('January', 'Wednesday'):
case array('February', 'Monday'):
case array('April', 'Tuesday'):
case array('July', 'Saturday'):
case array('September', 'Thursday'):
case array('September', 'Tuesday'):
return (in_array($week, array(1, 2)));
}
return FALSE;
}
: Genellikle bu gibi yazılı olacaktır
function checkInputForCriteria($month, $day, $week)
{
if (
($month == 'January' && $day == 'Wednesday')
|| ($month == 'February' && $day == 'Monday')
|| ($month == 'April' && $day == 'Tuesday')
|| ($month == 'July' && $day == 'Saturday')
|| ($month == 'September' && $day == 'Thursday')
|| ($month == 'September' && $day == 'Tuesday')
)
{
return ($week == 1 || $week == 2);
}
return FALSE;
}
Ben switch-case-dizi yöntemi yaygın olarak kullanılan olmadığını fark ederken, bunu kullanmak için herhangi bir kodlama standart bir neden görmüyorum. PHP görünüyor tam olarak dizinin her öğesi verileri karşılaştırarak hiçbir sorun vardır. Bu değeri dizi elemanlarının ve her karşılaştırma dizi elemanı arasındaki doğrudan sipariş ilişki ile kompakt. CPU ya da bellek (ben test değil ki) yoğun olsaydı ben bu yöntemi kullanmak değil görebilirsiniz tek nedeni budur.
Sadece kodlama standart etkileri dayanarak, kendi kodunda bu kullanım kabul edecekti? Eğer herhangi bir sorun olup bittiğini anlamakta olurdu sadece son gezen başkasının kodunda bu görseydi?
Bu yapı tipi biz normalde bekliyoruz / gördükleriniz değil, çünkü izin verilmese bile, ne yukarıdaki örneklerde gerekli gibi verileri karşılaştırmak için bir yapı tanıtmak için yol olurdu? Temel if
ifadeleri mantık kararlar verileri karşılaştırmak için kabul edilebilir tek yolu var mı?