bu switch $ _GET xatosi bilan noto'g'ri nima?

<?php switch (true) :
    case $_GET['change']:
      echo 'hello';
    break;
    default:
      echo 'bye';
    break; ?>

Bu menga xatoni beradi:

Qarama xatolik: sintaksisi xatosi, faylning kutilmagan oxiri   D: \ xampp \ htdocs \ profile.php sahifada 47.

Va bu mening kodimning oxiri. Nima unutdingiz, chunki men bu kodni sharhlayman, u yaxshi ishlaydi.

3
Buni qanday ishlatishni bilib oling php.net/manual/en/control-structures.switch .php
qo'shib qo'ydi muallif jitendrapurohit, manba
Agar siz faqat ikkita vaziyat opsiyasi bilan ishlayotgan bo'lsangiz, switch-ni o'chiring. Faqat oddiy if/else bayonotidan foydalaning. Yoki siz ko'rsatmagan kodingiz bormi?
qo'shib qo'ydi muallif mickmackusa, manba
Agar siz $ _ GET parametrlari yoki strings yoki hech o'rnatilmagan bo'lsa, $ _ GET ['change'] == true - bo'sh joy har doim == true .
qo'shib qo'ydi muallif apokryfos, manba
siz $ _GET ['o'zgarish'] holatini keltira olmaysiz
qo'shib qo'ydi muallif Naincy, manba
@jitendrapurohit bilan rozi bo'lasiz
qo'shib qo'ydi muallif Naincy, manba

6 javoblar

Sizning kommutatoringiz case case kabi ishlov beradigan o'zgaruvchiga kerak:

<?php
switch($_GET["change"])
{
   case "value":
     echo "You called this case.";
     break;//Stop the switch for being executing futher.

   default: //Set default message if the case wasn't found.
     echo "Cannot find the case.";
     break;

}
?>

Read more: http://php.net/manual/en/control-structures.switch.php

3
qo'shib qo'ydi

Siz boshqaruv tuzilmalari uchun muqobil sintaktikadan foydalanmoqdasiz. Ya'ni siz oxirida kalitni yopishingiz kerak

endswitch

to'liq kodni yaratish

switch (true):
    case $_GET['change']:
        echo 'hello';
        break;
    default:
        echo 'bye';
        break; 
endswitch;
?>

switch/case tuzilishini kengaytirishni mo'ljallamasangiz, ushbu kod qismini quyidagicha soddalashtirasiz.

echo isset($_GET['change']) ? "hello" : "bye";

In any case, just doing case $_GET['change']: just checks if that holds any values, not what they are, or if its set at all, so you may get warnings about this. If you intend to expand your structures, you should see the example of @C0dekid - that's how you should build your switch/case

2
qo'shib qo'ydi

To'g'ri kod:

<?php 
    switch (true) :
        case $_GET['change']:
            echo 'hello';
            break;
        default:
            echo 'bye';
            break; 
    endswitch;
?>

Buning sababi shundaki, siz endswitchni sog'indingiz. yoki brauzerlardan foydalaning {}

2
qo'shib qo'ydi
Bu to'g'ri url, lekin agar to'g'ri bo'lsa, sahifa /profile.php bor bo'lsa, ha to'g'ri url bo'lsa, $ _GET parametri o'zgaradi. Buni siz kabi ishlata olasizmi? O'zgartirish = yourValue
qo'shib qo'ydi muallif Eimsas, manba
Yana bir savol, bu to'g'ri url localhost/profile.php? Change ??
qo'shib qo'ydi muallif Jelle N, manba

Qavslarni o'rnatish yaxshiroq:

<?php
switch ($_GET['change']) {
    case true:
        echo 'hello';
    break;
    default:
        echo 'bye';
    break;
}
?>

Agar muqobil sintaksikni dan foydalanmoqchi bo'lsangiz, quyidagi manzilga o'ting: ushbu ogohlantirish:

Ogohlantirish

     

Agar kalit so'zi va birinchi holatda o'rtasidagi har qanday chiqish (bo'shliqni o'z ichiga olgan) sintaktik xatolarga olib keladi. Masalan, bu bekor:

1
qo'shib qo'ydi

Quyidagilardan iborat bo'lishi kerak:

<?php 
switch ($_GET['change']) {
case [YOURVALUEHERE]:
  echo 'hello';
break;
default:
  echo 'bye';
break; 
}
?>

Example from PHP.net

<?php
switch ($i) {
    case 0:
        echo "i equals 0";
        break;
    case 1:
        echo "i equals 1";
        break;
    case 2:
        echo "i equals 2";
        break;
    default:
       echo "i is not equal to 0, 1 or 2";
}
?>
1
qo'shib qo'ydi

O'zingizning kalitingiz uchun o'ng panani qo'ymadingiz, "{". Misol uchun:

switch (true) {
case $_GET['change']:
  echo 'hello';
break;
default:
  echo 'bye';
break;
}
0
qo'shib qo'ydi
Ha, lekin hozir 6 javobni o'chirib bo'lmaydi.
qo'shib qo'ydi muallif User formerly known as chris85, manba
Eshikdan keyin, u tugatishni unutdi ... Lekin bu savollar o'chirilmasligi kerakmi?
qo'shib qo'ydi muallif ermacmkx, manba
PhP |BotsUz
PhP |BotsUz
93 ishtirokchilar

Phpni o'rganishni Hohlasangiz https://t.me/joinchat/AAAAAE-KRc5dd5tPMmGmWA A'zo bo'lin