Böyle bir şey bir anahtar durumunda bir OR operatörü için (zaten PHP) var mı?
gibi bir şey ..
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
"Bir değer" 3 büyük "olup olmadığını test etmek için: hepsi doğru çünkü ben diğer cevaplar repost olmaz, ama ben sadece daha" karmaşık "ifadeleri için, örneğin anahtarını kullanamazsınız ekleyeceğiz "4 ila 6, vb, böyle bir şey yapmak if
ifadeleri kullanarak, veya switch
için özellikle güçlü bir ihtiyaç varsa o zaman bunu kullanmak mümkün ayrılmamak için gerekirse Arka cepheye:
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
Dediğim gibi ama, ben şahsen bir if
deyimi orada kullanmak istiyorum.
Eğer switch
ile ||
kullanmanız gerekiyorsa, o zaman deneyebilirsiniz:
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
Değilse tercih bir çözüm olurdu
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
Sorun ... 1
100
bu işe hayal mükemmel büyük olgu ile uğraşırken hem yöntem verimli olmadığıdır
$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;
}
http://phpswitch.com/: Bu yazıda bu aşağıdaki örnekler ile deneyin
Possible Switch Cases :
(I). A simple switch statement strong>
Switch deyimi harika ve sihirli. Bu bir değer için farklı seçenekler arasında seçin, ve değer ayarlanır bağlı olarak hangi kod farklı parçalarını çalıştırmak için izin dilin bir parçası.
Her türlü seçeneği switch deyimi bir durumda verilir.
Example :
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(Ii). Delimiting code blocks strong>
Anahtarın önemli ihtar mola ile durdurmak sürece her durumda, bir sonraki birine çalıştırmak olacaktır. Basit vaka Yukarıdaki durumda 5 kapsayacak şekilde genişletilmiştir ise:
Example :
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). Using fallthrough for multiple cases strong>
Bir mola bulana kadar anahtar kodunu yayınlanmaya devam edecektir, çünkü fallthrough kavramını almak ve birden fazla durum için aynı kodu çalıştırmak için yeterli kolaydır:
Example :
case 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). Advanced switching: Condition cases strong>
PHP'nin anahtarı sadece belirli bir değişkenin değerine açmak için izin vermez: Eğer sürece bu durumda kullanmak için bir değer verir gibi, olguların biri olarak herhangi bir ifade kullanabilirsiniz. Bir örnek olarak, burada anahtarı kullanılarak yazılmış basit bir denetleyicidir:
Example :
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;
}
ben bu sorunu çözmek için yardımcı olabilir düşünüyorum.
I suggest you to go through http://php.net/manual/en/control-structures.switch.php (manual)
switch ($your_variable)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
explanation
Like for the value you what to execute single statement you can put it without a break as as until or unless break is found it will go on executing the code and if break found it will come out of the switch case.