PHP anahtarında 'VEYA' operatör veya eşdeğeri kullanmanın bir yolu var mı?
Örneğin, böyle bir şey:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
PHP anahtarında 'VEYA' operatör veya eşdeğeri kullanmanın bir yolu var mı?
Örneğin, böyle bir şey:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
Yanıtlar:
Eğer kullanmanız gerekiyorsa ||
ile switch
o zaman deneyebilirsiniz:
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
Değilse tercih ettiğiniz çözüm
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
Sorun hayal ... büyük vakalarda ile uğraşırken hem yöntem verimli olmadığıdır 1
için 100
bu mükemmel çalışacak
$r1 = range(1, 100);
$r2 = range(100, 200);
$v = 76;
switch (true) {
case in_array($v, $r1) :
echo 'the value is in range 1 to 100';
break;
case in_array($v, $r2) :
echo 'the value is in range 100 to 200';
break;
}
Diğer cevapları tekrar göndermeyeceğim, çünkü hepsi doğru, ancak sadece daha "karmaşık" ifadeler için anahtarı kullanamayacağınızı ekleyeceğim, örneğin: bir değerin "3'ten büyük" olup olmadığını test etmek için, " Böyle bir şey yapmanız gerekiyorsa, if
ifadeleri kullanmaya devam edin veya özellikle güçlü bir ihtiyaç switch
varsa, bunu öne doğru kullanmak mümkündür:
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
ama dediğim gibi, if
orada şahsen bir ifade kullanırdım .
switch()
ve bir C-ish dilinde çalışırken gerçekten sahip olmayı özlüyorum Select Case
, bu gerçekten çok büyük bir " if bloğu, else if, else-if ... burada ".
you can't use switch for more "complicated" statements
öyle can't
ya o shouldn't
? çünkü örneğinizdecan
switch (true)
şey, anahtarın sıradan bir kullanım durumu değildir.
Bu makalede aşağıdaki örnekleri deneyin: http://phpswitch.com/
Olası Anahtar Kutuları:
(ben). Basit bir anahtar bildirimi
Anahtar ifadesi harika ve sihirlidir. Bir değer için farklı seçenekler arasında seçim yapmanıza ve ayarlanan değere bağlı olarak farklı kod parçaları çalıştırmanıza olanak tanıyan bir dil parçasıdır.
Her olası seçenek, switch deyimindeki bir vaka tarafından verilir.
Misal :
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(ii). Kod bloklarını sınırlama
Anahtarın en büyük uyarısı, mola vermedikçe her bir vakanın bir sonrakine geçeceğidir. Yukarıdaki basit kasa, kasa 5'i kapsayacak şekilde genişletilirse:
Misal :
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iii). Birden çok vaka için geçiş özelliğini kullanma
Anahtar, bir mola bulana kadar kod çalıştırmaya devam edeceğinden, geçiş kavramını almak ve aynı kodu birden fazla vaka için çalıştırmak yeterince kolaydır:
Misal :
durum 2:
case 3:
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
break;
case 5:
echo "A copy of Ringworld is on its way to you!\n";
$foo = 34;
break;
(iv). Gelişmiş anahtarlama: Durum durumları
PHP'nin anahtarı sadece belirli bir değişkenin değerini açmanıza izin vermez: durum için bir değer verdiği sürece herhangi bir ifadeyi vakalardan biri olarak kullanabilirsiniz. Örnek olarak, switch kullanılarak yazılmış basit bir doğrulayıcı:
Misal :
switch(true)
{
case (strlen($foo) > 30):
$error = "The value provided is too long.";
$valid = false;
break;
case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
$error = "The value must be alphanumeric.";
$valid = false;
break;
default:
$valid = true;
break;
}
Bence bu sorununuzu çözmenize yardımcı olabilir.
Http://php.net/manual/en/control-structures.switch.php (manuel) 'dan geçmenizi öneririm
switch ($your_variable)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
açıklama
Değeri gibi tek bir deyimi yürütmek için ne gibi sonu olsun ya da olmadığı sürece bu kodu yürütmek devam edecek gibi bir kesinti olmadan koyabilirsiniz ve break bulundu eğer anahtar durumda çıkacaktır.
http://php.net/manual/en/control-structures.switch.php Örnek
$today = date("D");
switch($today){
case "Mon":
case "Tue":
echo "Today is Tuesday or Monday. Buy some food.";
break;
case "Wed":
echo "Today is Wednesday. Visit a doctor.";
break;
case "Thu":
echo "Today is Thursday. Repair your car.";
break;
default:
echo "No information available for that day.";
break;
}