Apakah ada cara menggunakan operator 'ATAU' atau yang setara dalam switch PHP?
Misalnya, sesuatu seperti ini:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
Apakah ada cara menggunakan operator 'ATAU' atau yang setara dalam switch PHP?
Misalnya, sesuatu seperti ini:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
Jawaban:
Jika Anda harus menggunakan ||
dengan switch
maka Anda dapat mencoba:
$v = 1;
switch (true) {
case ($v == 1 || $v == 2):
echo 'the value is either 1 or 2';
break;
}
Jika tidak, solusi pilihan Anda adalah
switch($v) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
Masalahnya adalah bahwa metode kedua tidak efisien ketika berhadapan dengan kasus besar ... bayangkan 1
untuk 100
ini akan bekerja dengan sempurna
$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;
}
Saya tidak akan memposting ulang jawaban lain karena semuanya benar, tetapi saya hanya akan menambahkan bahwa Anda tidak dapat menggunakan sakelar untuk pernyataan yang lebih "rumit", misalnya: untuk menguji apakah suatu nilai "lebih besar dari 3", " antara 4 dan 6 ", dll. Jika Anda perlu melakukan sesuatu seperti itu, tetap menggunakan if
pernyataan, atau jika ada kebutuhan yang sangat kuat untuk switch
maka mungkin untuk menggunakannya kembali ke depan:
switch (true) {
case ($value > 3) :
// value is greater than 3
break;
case ($value >= 4 && $value <= 6) :
// value is between 4 and 6
break;
}
tetapi seperti yang saya katakan, saya pribadi akan menggunakan if
pernyataan di sana.
switch()
, dan ketika saya bekerja dalam bahasa C-ish saya sangat merindukan memiliki Select Case
, yang benar-benar cara cepat untuk mengatakan "ada yang besar blok if, else if, else-if ... here ".
you can't use switch for more "complicated" statements
apakah itu can't
atau tidak shouldn't
? karena dalam contoh Andacan
switch (true)
ini bukan kasus penggunaan switch biasa.
Coba dengan contoh berikut ini di artikel ini: http://phpswitch.com/
Kemungkinan Beralih Kasus:
(saya). Pernyataan peralihan sederhana
Pernyataan pergantian itu luar biasa dan ajaib. Ini adalah bagian dari bahasa yang memungkinkan Anda memilih di antara opsi yang berbeda untuk suatu nilai, dan menjalankan bagian kode yang berbeda tergantung pada nilai mana yang ditetapkan.
Setiap opsi yang mungkin diberikan oleh case dalam pernyataan switch.
Contoh:
switch($bar)
{
case 4:
echo "This is not the number you're looking for.\n";
$foo = 92;
}
(ii). Membatasi blok kode
Peringatan utama saklar adalah bahwa setiap kasing akan beralih ke yang berikutnya, kecuali jika Anda menghentikannya dengan putus. Jika case sederhana di atas diperluas untuk mencakup case 5:
Contoh:
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;
(aku aku aku). Menggunakan fallthrough untuk banyak kasus
Karena switch akan terus menjalankan kode hingga menemukan celah, cukup mudah untuk mengambil konsep fallthrough dan menjalankan kode yang sama untuk lebih dari satu kasus:
Contoh:
kasus 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). Perpindahan tingkat lanjut: Kondisi kondisi
Pergantian PHP tidak hanya memungkinkan Anda untuk mengaktifkan nilai variabel tertentu: Anda dapat menggunakan ekspresi apa pun sebagai salah satu kasus, asalkan memberikan nilai bagi kasus untuk digunakan. Sebagai contoh, inilah validator sederhana yang ditulis menggunakan sakelar:
Contoh:
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;
}
Saya pikir ini dapat membantu Anda untuk menyelesaikan masalah Anda.
Saya menyarankan Anda untuk membaca 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;
}
penjelasan
Seperti untuk nilai Anda apa yang harus dieksekusi pernyataan tunggal Anda dapat meletakkannya tanpa istirahat karena sampai atau kecuali istirahat ditemukan itu akan terus mengeksekusi kode dan jika istirahat ditemukan itu akan keluar dari switch case.
Contoh http://php.net/manual/en/control-structures.switch.php
$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;
}
Cara terbaik mungkin kalau tidak dengan meminta. Juga, ini bisa lebih mudah dan jelas untuk digunakan.
Contoh:
<?php
$go = $_REQUEST['go'];
?>
<?php if ($go == 'general_information'){?>
<div>
echo "hello";
}?>
Alih-alih menggunakan fungsi yang tidak akan bekerja dengan baik dengan PHP, terutama ketika Anda memiliki PHP dalam HTML.